1、问题
用JSON.toJSONString转JSON时,当属性值为null的话,转出来的JSON里没有了值为null的属性,属性丢失了
2、原因
用fastjson将java对象转json字符串时会默认去除空字段
2、解决办法
在JSON.toJSONString方法加上SerializerFeature这一参数,设置为字段null时输出默认值而不是null
java
SerializerFeature.WriteNullListAsEmpty //如果List类型的字段的值为null,输出为[]
SerializerFeature.WriteNullStringAsEmpty //如果String类型的字段的值为null,输出为""
SerializerFeature.WriteNullNumberAsZero //如果数值类型的字段的值为null,输出为0,
SerializerFeature.WriteNullBooleanAsFalse //如果Boolean类型的字段的值如果为null,输出为false
java
SerializerFeatures[] serializerFeatures = {SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullBooleanAsFalse};
JSON.toJSONString(需要转成JSON的Java对象, serializerFeatures);