FastJson快速上手

2021-06-17  本文已影响0人  明训

FastJson快速上手

背景说明

FastJson是由阿里巴巴工程师基于JAVA开发的一款JSON解析器和生成器,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。

解决方案

开源项目

https://github.com/alibaba/fastjson

官方文档

https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
https://www.w3cschool.cn/fastjson/

依赖引入

https://mvnrepository.com/artifact/com.alibaba/fastjson

常见问题

原生类型序列化后缀L等字符

问题说明

针对Object[]List<Object>中的原生类型当使用SerializerFeature.WriteClassName会输出LF后缀

public static void main(String[] args) {
    Object[] objects = {0,2L,2.0f,"test"};

    List<Object> list = new ArrayList();
    list.add(0);
    list.add(2L);
    list.add(2.0f);
    list.add("test");

    System.out.println(JSON.toJSONString(objects,SerializerFeature.WriteClassName));
    System.out.println(JSON.toJSONString(objects));
    System.out.println(JSON.toJSONString(list,SerializerFeature.WriteClassName));
    System.out.println(JSON.toJSONString(list));
}

运行完毕后,输出结果如下

[0,2L,2.0F,"test"]
[0,2,2.0,"test"]
[0,2L,2.0F,"test"]
[0,2,2.0,"test"]
相关文档

https://github.com/alibaba/fastjson/issues/243

解决方案

官方作者温少[温绍锦]的官方回复如下:很遗憾告诉你,这是一个设计问题,无法修复。故此次不需要再纠结

弥补方案

FastJson输出的Json校验不合法时,人肉搜索F,L,确认后进行替换,后再格式化阅读。

上一篇下一篇

猜你喜欢

热点阅读