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":"法外狂徒张三"}