fastjson知识汇总


目录:

  1. fastjson简介
  2. 生成json字符串
  3. 解析json字符串为四种类型
  4. JSONObject与JSON字符串的转换
  5. JSONObject中Map, List转换
  6. fastjson解析null值不显示问题
  7. 总结

fastjson简介

Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。

maven依赖:

<!-- fastjson -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.30</version>
</dependency>

生成json字符串

JavaBean,List<JavaBean>,List<String>,List<Map<String,Object> 生成json字符串

String jsonStrng = JSON.toJSONString(object);

解析json字符串为四种类型

  1. JavaBean

    Person person = JSON.parseObject(jsonString, Person.class);
  2. List<JavaBean>

    List<Person> listPerson =JSON.parseArray(jsonString, Person.class);
  3. List<String>

    List<String> listString = JSON.parseArray(jsonString, String.class);
  4. List<Map<String,Object>>

    List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});

​ 注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001 , 而通过gson反射结果 为 id =1001.0

JSONObject与JSON字符串的转换

JSONObject jsonObject = JSON.parseObject(jsonString);

JSONObject中 Map, List转换

  1. Map转JSONObject

    JSONObject json = JSONObject.parseObject(JSON.toJSONString(itemMap));
  2. JSONObject转Map

    Map<String, Object> map = JSONObject.toJavaObject(itemJSONObj, Map.class); 

注:JSON.parseObject()同样可以转换

  1. List转JSONArray

    JSONArray array = JSONArray.parseArray(JSON.toJSONString(itemList)); 

fastjson解析null值不显示问题

参考fastjson解析null值处理 null的属性不显示

语法:

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

String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);

总结

还有很多详细的demo,可以参看这里


文章作者: 小小千千
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小小千千 !
评论
  目录