抽空看了一下FastJson的知识,这里自己做下笔记
1、fastJson主要的几个使用方法
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 parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final List parseArray(String text, Class 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。
2、有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List
JSONObject:相当于Map<String, Object>
JSON反序列化没有真正数组,本质类型都是List
3、简单的使用例子
1)转Json字符串
public static String toJson(Object obj) {
if (ToolUtil.isEmpty(obj)) {
return null;
}
//SerializerFeature.DisableCircularReferenceDetect的作用 是关闭fastJson循环引用
return JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect);
}
默认情况下Date 类型的数据 转成字符串是 时间戳的形式,所以如果是javaBean中存在Date类型的字段,
在字段属性加上 @JSONField(format = “yyyy-MM-dd HH:mm:ss”)进行格式指定
2)Json字符串转JavaBean
public static <T> T jsonStrToBean(String jsonStr, Class<T> clazz) {
if (ToolUtil.isEmpty(jsonStr)) {
return null;
}
return JSON.parseObject(jsonStr, clazz);
}
3)Json字符串转 Map
public static Map<String,Object> jsonStrToMap(String jsonStr){
if(ToolUtil.isEmpty(jsonStr)){
return null;
}
return JSON.parseObject(jsonStr,new TypeReference<Map<String,Object>>(){});
}
4) Json字符转List
public static <T> List<T> jsonStrToList(String jsonStr, Class<T> clazz) {
if (ToolUtil.isEmpty(jsonStr)) {
return null;
}
return JSON.parseArray(jsonStr, clazz);
}
4、maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>