之前写了关于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解析常用的四种格式的方法写成了一个工具类,直接上工具类源码:
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;
}
}
关于Gson解析的博文 请点这里
关于org.json解析的博文 请点这里