Jsonlib工具类

package com.yaphis.util.Json;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONStringer;

/**
 * 使用jsonlib.jar来解析生成json 需要引入jsonlib.jar和ezmorph-1.0.6.jar
 * 
 * @author huangchunhui 2014年6月3日 下午8:07:36
 */
public class JsonLibUtil {

    /**
     * 从一个JSON对象字符格式中得到一个java对象 说明:Bean的无参构造函数一定要写, 否则会报异常
     * 
     * @param json
     * @param clazz
     * @return
     */
    @SuppressWarnings("rawtypes")
    public static Object jsonToObject(String json, Class clazz) {
        Object pojo;
        JSONObject jsonObject = JSONObject.fromObject(json);
        pojo = JSONObject.toBean(jsonObject, clazz);
        return pojo;
    }

    /**
     * 从一个JSON对象字符格式中得到一个java对象 说明:Bean的无参构造函数一定要写, 否则会报异常
     * 
     * @param json
     * @param clazz
     * @return
     */
    @SuppressWarnings("rawtypes")
    public static Object jsonToObject(String json, Class clazz, Map<String, Class> classMap) {
        Object pojo;
        JSONObject jsonObject = JSONObject.fromObject(json);
        pojo = JSONObject.toBean(jsonObject, clazz, classMap);
        return pojo;
    }

    /**
     * 将java对象转换成json字符串
     * 
     * @param obj
     * @return
     */
    public static String objectToJson(Object obj) {
        JSONObject json;
        json = JSONObject.fromObject(obj);
        return json.toString();
    }

    /**
     * 从json HASH表达式中获取一个map
     * 
     * @param json
     * @return
     */
    public static Map<String, Object> jsonToMap(String json) {
        JSONObject jsonObject = JSONObject.fromObject(json);
        Map<String, Object> map = new HashMap<String, Object>();
        for (Iterator<?> it = jsonObject.keys(); it.hasNext();) {
            String key = (String) it.next();
            Object value = jsonObject.get(key);
            map.put(key, value);
        }
        return map;
    }

    /**
     * 从Map对象得到Json字串
     * 
     * @param map
     * @return
     */
    @SuppressWarnings("rawtypes")
    public static String mapToJson(Map map) {
        JSONObject json = JSONObject.fromObject(map);
        return json.toString();
    }

    /**
     * 从json字串中得到相应java数组
     * 
     * @param jsonString like "[\"李斯\",100]"
     * @return
     */
    public static Object[] jsonToArray(String json) {
        JSONArray jsonArray = JSONArray.fromObject(json);
        return jsonArray.toArray();
    }

    /**
     * 用JSONStringer构造一个JsonString
     * 
     * @param m
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unused" })
    public static String buildJsonString(Map m) {
        JSONStringer stringer = new JSONStringer();
        stringer.object();
        for (Object key : m.keySet()) {
            stringer.key((String) key).value((String) m.get(key));
        }
        stringer.key("phone");
        stringer.array();// begin nesting a array
        stringer.value("13998098000");
        stringer.value("8765432");
        stringer.object();// nestring object in array
        stringer.key("ppcall");
        stringer.value(53881);
        stringer.endObject();
        stringer.value("13990980980");
        stringer.endArray();// end nesting a array
        stringer.endObject();
        // 或者
        String jsonString = new JSONStringer().object().key("JSON").value("Hello, World!").key("Flex").value("OK").endObject().toString();
        return stringer.toString();
    }
}


你可能感兴趣的:(Jsonlib工具类)