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));
        }
     
    }

    以上。

    唯有热爱方能抵御岁月漫长。
  • 相关阅读:
    Android 下压缩图片—微弱失真
    android中ViewHolder通用简洁写法
    Android裁剪固定大小头像的功能
    Android进度加载的Loading效果
    GitHub开源项目总结
    Android 实现emoji表情的demo
    vim 高级使用技巧第二篇
    android apk 防止反编译技术第一篇-加壳技术
    Android Metro风格的Launcher开发系列第二篇
    FFMPEG高级编程第一篇:环境搭建及编译
  • 原文地址:https://www.cnblogs.com/syq816/p/10116561.html
Copyright © 2011-2022 走看看