Fastjson2使用JSONOObject或者mao转换为JSON字符串时丢失Null值字段

最近在工作中发现问题fastJson转换为JSONString时丢失值为null的问题特此解决。

java 复制代码
public class test001 {

    public static void main(String[] args) {

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("foo1", "bar");
        jsonObject.put("foo2", "baz");
        jsonObject.put("foo3", "");
        jsonObject.put("foo4", null);

        String jsonString = JSON.toJSONString(jsonObject);
        System.out.println(jsonString);
        /**
        *输出结果
         * {"foo1":"bar","foo2":"baz","foo3":""}
         */
//        JSON.toJSONString(jsonObject, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty));
//        String str = JSON.toJSONString(jsonString, JSONWriter.Feature.WriteNullListAsEmpty);
//        System.out.println(str);
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("foo1", new ArrayList<>());
        jsonObject1.put("", null);
        jsonObject1.put("foo3", "");
        jsonObject1.put("foo4", null);
        jsonObject1.put(null, "");
//        String str1= JSON.toJSONString(jsonObject1,JSONWriter.Feature.WriteNullListAsEmpty);
        String str2= JSON.toJSONString(jsonObject1,JSONWriter.Feature.WriteNulls);
//        System.out.println(str1);
        System.out.println(str2);
        /**
         *输出结果
         * {"foo1":[],"":"","foo3":"","foo4":null,"null":""}
         */

        String str3= JSON.toJSONString(jsonObject1);
//        System.out.println(str1);
        System.out.println(str3);
        /**
         *输出结果
         * {"foo1":[],"":"","foo3":"",null:""}
         */
        
    }
}

只需要在转换的后面加上

String str2= JSON.toJSONString(jsonObject1,JSONWriter.Feature.WriteNulls);
指定转换的格式即可,
由于这个转换规则时可变参数,既可以指定多个规则。

以下格式不在讲述自己可以尝试代码

相关推荐
励志秃头码代码38 分钟前
面试笔记 8.5
java·面试·职场和发展
阿诚学java38 分钟前
数据结构与算法-15高级数据结构_树论(堆树)
java·数据结构
极客先躯1 小时前
一个是生产打包的时候, 一个是本地测试启动的时候,maven如何配置?
java·maven·动态配置
一只懒鱼a2 小时前
SpringBoot 集成原生 Servlet、Filter、Listener
java·spring boot·后端·spring
未来的JAVA高级开发工程师2 小时前
使用SpringAOP实现公共字段填充
java·开发语言·后端·spring·mybatis
W.KN2 小时前
常见API(二)
java·笔记
roykingw3 小时前
程序员短视频上瘾综合症
java·程序人生·面试
乐乐吃不饱3 小时前
java之WIFI信号模块
java·开发语言
数懒女士3 小时前
Java中等题-括号生成(力扣)
java·算法·leetcode
HumoChen993 小时前
项目中引入RedisTemplate和Redisson时RedisTemplate无法使用zset问题(栈溢出stackOverflow)深入源码分析解决
java·spring boot·mybatis·redisson·redistemplate