FastJSON的使用方法

FastJSON是阿里巴巴的出品的一个JSON类库,其功能强大,速度号称为当今最快,比net.sf.json,Google的GSON都要快。主要方法如下:

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String, Object>
 
一些比较常用的方法:
1.List<Map<String,Object>>转JSONArray:
/**
     * list转json,首先需要得到JSON字符串
     * @param list
     * @return
     */
    public JSONArray listMap2JSONArray(List<Map<String,Object>> list){
        /*JSON.toJSONString(object, prettyFormat),这里的prettyFormat当为真时,
         * 得到的JSON为带格式的JSON,否则为普通JSON
         */
        return JSON.parseArray(JSON.toJSONString(list,true));
    }
View Code

注意到以上代码的JSON.toJSONString(object, prettyFormat)方法,该方法第二个参数为布尔值,当该值为真时,转化得来的JSON字符串为带格式的JSON:

[
    {
        "age":"21",
        "gender":"male",
        "name":"Tom"
    },
    {
        "age":"21",
        "gender":"male",
        "name":"Tom"
    }
]
View Code

而当prettyFormat为假时,转化而来的是不带格式的JSON字符串:
[{"age":"21","gender":"male","name":"Tom"},{"age":"21","gender":"male","name":"Tom"}]

可以看到第一种格式的JSON字符串只是便于人们阅读而已。从便于计算机解析的角度来看,两者是一样的。

2.JSONArray转List<Map<String,Object>>

 
    /**
     * JSONArray转listMap
     * @param jsonArray
     */
    public List<Map<String,Object>> JSONArray2listMap(JSONArray jsonArray){
        return JSON.parseObject(jsonArray.toJSONString(),new TypeReference<List<Map<String,Object>>>(){});
    }
View Code

通过TypeReference实现泛型。

3.JSONObject转Map<String,Object>

    /**
     * JSON转Map
     * @param jsonObj
     * @return
     */
    public Map<String,Object> json2Map(JSONObject jsonObj){
        return JSON.parseObject(jsonObj.toJSONString(),new TypeReference<Map<String,Object>>(){});
    }
View Code

4.Map<String,Object>转JSONObject

    /**
     * Map转JSON
     * @param map
     * @return
     */
    public JSONObject map2JSON(Map<String,Object> map){
        return JSON.parseObject(JSON.toJSONString(map,true));
    }
View Code

5.JSON转List<JavaBean>

    /**
     * JSONArray转List<File>(存储JavaBean的List)
     * @param jsonArray
     * @return
     */
    public List<File> jsonArray2BeanList(JSONArray jsonArray){
        return JSON.parseArray(jsonArray.toJSONString(),File.class);
    }
View Code
原文地址:https://www.cnblogs.com/cestlavie/p/5277903.html