基础能力——FastJson坑点
(54条消息) 【避坑】FastJson稍微使用不当就会导致StackOverflow_Bolon0708的博客-CSDN博客
(87 封私信 / 80 条消息) json坑点 – 搜索结果 – 知乎 (zhihu.com)
记一次 FastJson 的踩坑经历 – 腾讯云开发者社区-腾讯云 (tencent.com)
fastjson的这些坑,你误入了没? | 码农家园 (codenong.com)
- 写代码时候还是需要注意点,能稍微规范些,就尽量按照规范,就如本次提到的问题,向 JSONObject 中加入 List<map<string,object> 时,不妨先提前 toJSON 转换一番,这样版本升级也不会有问题。</map<string,object>
- 由于依赖包升级导致不兼容的情况很常见,不过绝大多数都是向下兼容的,例如 JDK … 5、6、7、8 …,所以如果你正在开发核心代码,若涉及到版本更新,尽量考虑兼容性问题,如果涉及到老功能废弃时,不妨采用注解标注一下,这样后人会尽早发现问题。
在使用三方轮子时,尽可能做对三方的轮子了如之掌,知己知彼方能百战不殆。
知识记录
1.fastjson反序列化时,是能自动下划线转驼峰的。
例如:ReportExceptionDto dto = JSONObject.parseObject(jsonObject.toJSONString(), ReportExceptionDto.class);
参考文章:使用FastJson进行驼峰下划线相互转换写法及误区_氵奄不死的鱼的博客-CSDN博客_fastjson 驼峰转下划线
2.JSONObject.toJSONString()默认忽略值为null的属性
如下图:new出的对象中,如果存在属性的值为null,那么toJSONString生成的字符串不会有该属性;
/**
* 过滤规则 - 避免toJSONString过滤空值对应的key
*/
private static ValueFilter valueFilter = (o,s,o1) -> o1 == null ? "" : o1;