zoukankan      html  css  js  c++  java
  • fastjson生成json时Null属性不显示的解决方法

    举个例子

    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 = JSONObject.toJSONString(jsonMap); 
    System.out.println(str); 
    //输出结果:{"a":1,"b":"",d:"wuzhuti.cn"} 
    

    从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性

    也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature... features)

    Fastjson的SerializerFeature序列化属性

    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","wuzhuti.cn"); 
      
    String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); 
    System.out.println(str); 
    //输出结果:{"a":1,"b":"","c":null,"d":"wuzhuti.cn"} 
    

  • 相关阅读:
    4.17 杂七杂八
    常量指针与指针常量
    作用域与命名空间
    QDataStream序列化的使用
    Qthread类的使用和控制台打印中文!
    Qproces的启动
    在centos7上安装部署hadoop2.7.3和spark2.0.0
    每天一点存储知识:集群Nas
    git 提交某个内容
    pyspider—爬取视频链接
  • 原文地址:https://www.cnblogs.com/zhuhui-site/p/10090640.html
Copyright © 2011-2022 走看看