fastjson SerializerFeature,序列化规则不生效

n6lpvg4x  于 2021-11-27  发布在  Java
关注(0)|答案(2)|浏览(355)

public static void main(String[] args) {

List<String> list = null;        
    Map<String, Object> map = new HashMap<>();
    map.put("a", 41);
    map.put("b", "");
    map.put("c", null);

    Long lon = null;
    String str = null;
    try {
        // 是否输出值为null的字段,默认为false
        System.out.println(JSON.toJSONString(map, SerializerFeature.WriteMapNullValue));
        // List字段如果为null,输出为[],而非null
        System.out.println(JSON.toJSONString(list, SerializerFeature.WriteNullListAsEmpty));
        // 数值字段如果为null,输出为0,而非null
        System.out.println(JSON.toJSONString(lon, SerializerFeature.WriteNullNumberAsZero));
        // 字符类型字段如果为null,输出为"",而非null
        System.out.println(JSON.toJSONString(str, SerializerFeature.WriteNullStringAsEmpty));
        // 输出日期
        System.out.println(JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat));

    } catch (Exception e) {
        e.printStackTrace();
    }  
}

输出结果:
{"a":41,"b":"","c":null}
null
null
null
"2016-10-13 14:46:14"

@wenshao 温少大神,请问为什么list、string、Long没有按照序列化规则输出呢?

qkf9rpyu

qkf9rpyu1#

Map中的null不知道类型,不能做额外处理

eufgjt7s

eufgjt7s2#

@PromethS 可以用JavaBean替换Map再toJSONString

相关问题