Java对象转JOSN格式字符串,value设置为null被过滤问题

java对象转换为json格式的字符串,我们一般做法都是直接使用

toJSONString() 方法,直接丢转换的对象进去,这样的话,转换出来的json格式的字符串不会显示值为空的 key和value,  例子如下:

        Map<String, Object> bodys = new HashMap<>();
        bodys.put("Name", "法外狂徒张三");
        bodys.put("NO", null);
        bodys.put("TITLE", null);
        bodys.put("URGENCY", "普通");
        //转换json格式字符串
        String bodyJsonString = JSONObject.toJSONString(bodys);
        //打印转换后的json字符串
        System.out.println("body :" + bodyJsonString);

打印结果:

body :{"URGENCY":"普通","Name":"法外狂徒张三"}

打印结果中可以看到,NO、TITLE参数Key都是消失了,已经被过滤掉了。

如何解决?toJSONString() 方法再加上一个入参即可。

SerializerFeature.WriteMapNullValue

SerializerFeature包是阿里巴巴的fastjson.serializer

com.alibaba.fastjson.serializer
        Map<String, Object> bodys = new HashMap<>();
        bodys.put("Name", "法外狂徒张三");
        bodys.put("NO", null);
        bodys.put("TITLE", null);
        bodys.put("URGENCY", "普通");
        //转换json格式字符串
        String bodyJsonString = JSONObject.toJSONString(bodys, SerializerFeature.WriteMapNullValue);
        //打印转换后的json字符串
        System.out.println("body :" + bodyJsonString);

打印结果:

body :{"NO":null,"URGENCY":"普通","TITLE":null,"Name":"法外狂徒张三"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值