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
会输出L
和F
后缀
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,
确认后进行替换,
后再格式化阅读。
网友评论