Json使用之FastJson
Posted 嗨小叔的程序猿之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Json使用之FastJson相关的知识,希望对你有一定的参考价值。
一、API
Fastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject,使用fastjson要注意要转换的类必须有默认的无参构造方法。
序列化 : String jsonString = JSON.toJSONString(obj);
反序列化 :VO vo = JSON.parseObject("jsonString", VO.class);
泛型反序列化 :List<VO> list = JSON.parseObject("jsonString", new TypeReference<List<VO>>(){});(注:VO必须有默认无参构造方法)
其他API:
// 1、把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
// 2、把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);
// 3、把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 4、把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
// 5、把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);
// 6、将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
// 7、将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);
// 8、将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject);
(注:SerializeWriter:相当于StringBuffer ;JSONArray:相当于List ;JSONObject:相当于Map)
二、FastJson对于json格式字符串的解析主要用到了一下三个类:
JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
JSONObject:fastJson提供的json对象。
JSONArray:fastJson提供json数组对象。
三、Fastjson的SerializerFeature序列化属性
有时候进行JSON转换的时候,null对应的key已经被过滤掉;如果我们不想要过滤的化,那么我们就需要用到fastjson的SerializerFeature序列化属性
也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature... features)
QuoteFieldNames:输出key时是否使用双引号,默认为true
WriteMapNullValue:是否输出值为null的字段,默认为false
WriteNullNumberAsZero:数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty:List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty:字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null
四、项目实战(代码)
依旧沿用之前(、)讲解的两个对象,大致如下所示,省略get\set方法
2、转换代码如下(各位可根据使用,写一个工具类来可能更简洁易懂写):
3、运行结果:
以上是关于Json使用之FastJson的主要内容,如果未能解决你的问题,请参考以下文章