JSON.toJSONString()空字段不忽略修改
·
使用JSON.toJSONString(object)方法,返回的json中,null对应的key已经被过滤掉,这是因为默认会将为空的字段自动忽略,这明显不是我们想要的结果。 去掉JSON.toJSONString()空字段忽略方法两个如下
- 方法一
SerializerFeature序列化属性
String s = JSON.toJSONString(user, SerializerFeature.WriteNullStringAsEmpty);
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非nul
- 方法二
加上这个过滤器后,所有的null和"“串都会被转换成”"值输出到字符串中
private static ValueFilter valueFilter = (o, s, o1) -> o1 == null ? "" : o1;
public static void main(String[] args) {
User user = new User();
String s = JSON.toJSONString(user, valueFilter);
System.out.println(s);
}
- 测试代码如下
private static ValueFilter valueFilter = (o, s, o1) -> o1 == null ? "" : o1;
public static void main(String[] args) {
User user = new User();
String s1 = JSON.toJSONString(user);
System.out.println(s1);
String s2 = JSON.toJSONString(user, SerializerFeature.WriteNullStringAsEmpty);
System.out.println(s2);
String s3 = JSON.toJSONString(user, valueFilter);
System.out.println(s3);
}
- 测试结果如下

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)