JSON.toJSONString()空字段不忽略修改

29 阅读1分钟

方法一

SerializerFeature序列化属性

QuoteFieldNames———-输出key时是否使用双引号,默认为true  
WriteMapNullValue——–是否输出值为null的字段,默认为false  
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null  
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null  
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null  
WriteNullBooleanAsFalseBoolean字段如果为null,输出为false,而非null

方法二

加上这个过滤器后,所有的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);

    }


结果如下

image.png