FastJSON2 对象转String时属性值为null时,转化后的Json中多出一个逗号问题

FastJSON2 对象转JSON时属性值为null时,转化后的Json中多出一个逗号问题

案例:

public static void main(String[] args) {
    JSONObject content = new JSONObject();
    content.put("userId","111");
    content.put("option","2222");
    content.put("password_type", "33333");
    content.put("password", "44444");
    content.put("lockOpenId", null);
    content.put("syncStatus", "555");
    System.out.println("object1.toJSONString() = " + content.toJSONString());
}

输出结果:

object1.toJSONString() = {"userId":"111","option":"2222","password_type":"33333","password":"44444",,"syncStatus":"555"}

可以看到输出的结果中多了一个逗号,且源码中可以看到lockOpenId属性已经忽略了,但所在位置上多出了一个逗号。通过现象可以发现:默认情况下在对象属性值为null的情况下,属性会忽略,但逗号不会忽略

=解决方案

使用JSON.toJSONString方法的第二个参数JSONWriter.Feature... features即可解决,使用下面的WriteMapNullValue,具体使用视情况而定

JSONWriter.Feature的静态枚举如下所示(常见):

QuoteFieldNames:输出key时是否使用双引号,默认为true
WriteMapNullValue:是否输出值为null的字段,默认为false
WriteNullNumberAsZero:数值字段如果为null,输出为0,而非null
WriteNullListAsEmptyList字段如果为null,输出为[],而非null
WriteNullStringAsEmpty:字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalseBoolean字段如果为null,输出为false,而非null
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值