zoukankan      html  css  js  c++  java
  • 使用fastjson,gson解析null值的时候键保留

    由于业务需求。。。所以查阅资料,总结如下:

    使用gson实现方法:只需要把new Gson()改为:

    new GsonBuilder().serializeNulls().create(); 就可以了
    复制代码
    public class Test {
        public static void main(String[] args) {
            Gson gson= new GsonBuilder().serializeNulls().create();
            Map < String , Object > jsonMap = new HashMap< String , Object>(); 
            jsonMap.put("a",1); 
            jsonMap.put("b",""); 
            jsonMap.put("c",null); 
            jsonMap.put("d","wuzhuti.cn");
            String str = gson.toJson(jsonMap);
            System.out.println(str);
            
            person peson1 = new person();
            peson1.setAge(1);
            peson1.setName(null);
            System.out.println(gson.toJson(peson1));
        }
        
    }
    class person{
        private int age;
        private String name;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
    }
    复制代码

    使用fastjson实现方法:只需要再toJsonString的时候加上

    SerializerFeature.WriteMapNullValue 这个参数。
    复制代码
    public class FastJsonTest {
        public static void main(String[] args) {
            /*
             * QuoteFieldNames———-输出key时是否使用双引号,默认为true
             * WriteMapNullValue——–是否输出值为null的字段,默认为false
             * WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
             * WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
             * WriteNullStringAsEmpty—字符类型字段如果为null,输出为"",而非null
             * WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
             */
            Map<String, Object> jsonMap = new HashMap<String, Object>();
            jsonMap.put("a", 1);
            jsonMap.put("b", "");
            jsonMap.put("c", null);
            jsonMap.put("d", "json");
     
            String str = JSONObject.toJSONString(jsonMap);
            // 忽略null输出
            System.out.println(str);
     
            String str2 = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);
    
            System.out.println(str2);
     
            String json = "{"fail":null,"updateTimestamp":"1484096131863","productName":"json测试"}";
            // 忽略null输出
            System.out.println(JSON.parse(json));
            // 
            System.out.println(JSONObject.toJSON(json));
        }
     
    }
    复制代码

    以上。

  • 相关阅读:
    MacBook下java环境的搭建
    Mac 终端下Homebrew的几个常用命令(新手笔记)
    新手学Appium_Python_Client
    【转】pycharm的一些快捷键
    解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题
    chrome扩展第三方浏览器下载安装
    php异或加密解密算法的实现
    TortoiseGit客户端密钥配置
    CURL重试发送请求
    关于接收POST请求 $GLOBALS['HTTP_RAW_POST_DATA']
  • 原文地址:https://www.cnblogs.com/exmyth/p/11595224.html
Copyright © 2011-2022 走看看