Fastjson对null的处理
这周前几天,同事问我,使用Fastjson进行Json的处理,需要转成Json的对象中还有null值,输出成JsonString后,该值和所对应的key都没有了。他的代码是这样的:
Map<String, String> map = new HashMap<String, String>();
map.put("a", "12");
map.put("b", null);
String jsonString = JSONObject.toJSONString(map);
System.out.println(jsonString);
输出为:
{"a":"12"}
b的key没了,value也没了,而对于使用该接口的下游系统来说,有key而value为null与无key是完全不同的概念,所以需要下发该key。
我搜了下,网上有提供方案,使用SerializerFeature.WriteMapNullValue。如下:
Map<String, String> map = new HashMap<String, String>();
map.put("a", "12");
map.put("b", null);
String jsonString = JSONObject.toJSONString(map,
SerializerFeature.WriteMapNullValue);
System.out.println(jsonString);
输出为:
{"b":null,"a":"12"}