fastjson生成json时Null转为空字符串““或者不展示问题解决
2023-03-14 22:49:18 时间
在开发过程中,系统间对接是再正常不过的行为了,但是在对接过程中由于各种原因可能为空字段必须显示为空字符串,或者不显示
举个栗子:
Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d","wuzhuti.cn"); String str = JSONObject.toJSONString(jsonMap); System.out.println(str); //输出结果:{"a":1,"b":"",d:"wuzhuti.cn"}
从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性。fastjson提供了此方法解决这个问题:JSONObject.toJSONString(Object object, SerializerFeature... features)
Fastjson的SerializerFeature序列化属性
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
使用此方法后效果如下:
Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d","wuzhuti.cn"); String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteNullStringAsEmpty); System.out.println(str); //输出结果:{"a":1,"b":"","c":"","d":"wuzhuti.cn"}
相关文章
- 苹果 macOS Monterey 12.1 RC 预览版发布:修复 M1 Pro / Max MacBook Pro 充电问题
- Linux不安全!你知道吗?
- 盗版激活要小心!恶意 KMSPico Windows激活工具 窃取用户的加密货币钱包
- Mozilla Firefox 95发布开始在所有平台上启用RLBox沙箱
- 即将推出的 CutefishOS 可能取代深度成为最漂亮的 Linux 发行版
- 五个去谷歌化的安卓操作系统
- 如何在 Ubuntu Linux 上从源代码构建 Qt 6.2.2
- 生产环境 Kubernetes 中出现了很多 Evicted Pod,我该怎么办呢?
- 送走 CentOS,迎来社群企业级操作系统 CentOS Stream 9
- 中国俄罗斯合作开发操作系统,包括鸿蒙、欧拉 openEuler 及极光 AuroraOS
- 没法忍!微软对Office套件收费重大调整:不按年订阅就涨价20%
- 政府用的Windows 10系统长这样,区别于普通的Windows,带你直观了解下
- Windows剪贴板功能获大幅强化:Edge与Chrome浏览器相互粘贴图片成为可能
- 基于3861智能开发套件软件开发环境搭建
- 迫于压力 微软宣布恢复Windows 11一键切换默认浏览器选项
- 为竞争浏览器市场,Microsoft Edge和Google Chrome互掐
- 网友自制:一个更现实、更诚实的Windows 11广告会是什么样子
- 跳跃表数据结构与算法分析
- 微软再出“奇招”,着手干预 Windows 用户下载 Chrome 浏览器
- Linux 修复 Spectre V1 SWAPGS 漏洞,代码来自阿里工程师