之前写了关于org.json 以及gson解析 json格式数据的相关博文,今天再补充一下使用阿里巴巴工程师类库fastjson解析json数据,fastjson和谷歌的gson很像,但是比谷歌的gson做的优化更好,因为至少我在测试的时候并没有出现谷歌gson包的Java泛型擦除的问题,
即 com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException:
Expected Person but was BEGIN_OBJECT 等类似的问题
和之前一样,仍然将fastjson解析常用的四种格式的方法写成了一个工具类,直接上工具类源码:
关于Gson解析的博文 Q.E.D. package com.zml.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.google.gson.Gson;
import com.zml.pojo.Person;
/**
* @author zml2015 * @Time:2016年7月18日 上午9:53:16 * @version 1.0
*/
public class FastJsonTools {
public FastJsonTools() {
throw new UnsupportedOperationException("不能被实例化");
}
/**
* TODO 转换成json格式的字符串 * @param object 要转换的对象 * @return
*/
public static String
createJsonString(Object object) {
String jsonString = JSON.toJSONString(object);
return jsonString;
}
/**
* 将json字符串转换为指定的bean对象 * @param jsonString * @param cls 要转换为对象的类型 * @return
*/
public static <T> T createJsonBean(String jsonString, Class<T>
cls) {
T t = JSON.parseObject(jsonString, cls);
return t;
}
/**
* 将json字符串转换为List<T> * @param jsonString * @param cls * @return
*/
public static <T> List<T> createJsonToListBean(String jsonString, Class<T> cls) {
List<T> list = null;
list = JSON.parseArray(jsonString, cls);
return list;
}
/**
* 将json字符串转换为List<Map<String,Object>> * @param jsonString * @return
*/
public static List<Map<String, Object>> createJsonToListMap(String jsonString) {
List<Map<String,
Object>> list2 = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() {
});
return list2;
}
/**
* 将json字符串转换为List<String> * @param jsonString * @return
*/
public static List<String> createJsonToListString(String jsonString) {
List<String> list2 = JSON.parseObject(jsonString, new TypeReference<List<String>>() {
});
return list2;
}
}
关于org.json解析的博文 请点这里