【java】将json中的null转为空字符串

本文介绍了两种在Java中使用JSON.toJSONString()方法时,如何避免在序列化过程中丢弃null值字段的策略。方法一是通过设置SerializerFeature,例如WriteNullStringAsEmpty,将null字符串转换为空字符串。方法二是利用ValueFilter过滤器,当值为null时替换为指定字符串。这两种方式能帮助保留null字段并在序列化时进行适当处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

在接受前端传过来的数据的时候,map中有value为null的值,在后续传参的时候,json化会把value为null的key丢弃掉。以JSON.toJSONString()为例。去掉 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

方法二:ValueFilter过滤器

    ValueFilter valueFilter = (o, s, o1) -> o1 == null ? "" : o1;
    user = JSON.parseObject(JSON.toJSONString(user, valueFilter),User.class);