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"} 

原文地址:https://www.cnblogs.com/zhuhui-site/p/10090640.html

时间: 2024-11-06 11:50:32

fastjson生成json时Null属性不显示的解决方法的相关文章

【转】Fastjson生成json时Null属性不显示

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

Fastjson生成json时Null属性不显示

原文地址:http://blog.csdn.net/lisheng19870305/article/details/52035126 举个例子 Map < String , Object > jsonMap = new HashMap< String , Object>();   jsonMap.put("a",1);   jsonMap.put("b","");   jsonMap.put("c",n

MVC5序列化Json时遇到的大小写问题及解决方法

最近在一个MVC5项目中遇到了一个问题:C#编码规范中规定属性的首字母是大写的(大多数公司采用这种编码风格),但是从其它系统中接收到的json对象的属性却是小写的(大多数公司采用这种编码风格),怎样才能方便地完成转换? 最笨的方法是定义一个所有属性名为小写的ViewModel类,然后再编写相应的方法来完成大小写属性的转换. 有没有更加优雅的做法? 在MVC5,默认的json序列化组件是Newtonsoft.Json.怎样才能让Newtonsoft.Json在序列化的时候自动将大写转换成小写,而在

php读取json时无数据(为空)的解决方法

在使用PHP调用一些json接口文件时 如果使用 file_get_contents 获取页面json数据后 再使用json_decode()解析后 数据无法正常输出 这是的返回值为null 这是由于php的file_get_contents得到的数据前面有三个看不到的BOM字符,将php转码或设置头部编码为无BOM依旧无法解决 一种可行的办法就是: <?php$str = file_get_contents('json接口地址'); //获取页面地址 $str = substr($str,3)

Json返回结果为null属性不显示解决方法

返回时null属性不显示:String str = JSONObject.toJSONString(obj); 返回为null属性显示:String str = JSONObject.toJSONString(obj,SerializerFeature.WriteMapNullValue); Fastjson的SerializerFeature序列化属性 QuoteFieldNames----输出key时是否使用双引号,默认为true. WriteMapNullValue--–是否输出值为nul

fastjson将json字符串转化成map的五种方法

fastjson将json字符串转化成map的五种方法 复制代码 1 package com.zkn.newlearn.json; 2 3 import com.alibaba.fastjson.JSON; 4 import com.alibaba.fastjson.JSONObject; 5 import java.util.Map; 6 7 /** 8 * JSON字符串自动转换 9 * 10 */ 11 public class JsonToMapTest01 { 12 13 public

echarts 无法获取属性“getAttribute”的值: 对象为 null 或未定义 错误解决方法

使用百度的echarts时,在IE9下运行时有时会报如题的错误,有时刷新下又正常,造成这种错误的原因是 echarts.js引用放在head中或者放在body中HTML代码的前面了,造成加载时阻塞后面的html. 解决方法就是将echarts.js的引用放在</body>之前就可以了,完美解决!

universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法

在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使用UIL遇到了这个问题,相信这个问题许多使用UIL的人都碰到过 现在把解决方法贴出来给有同样问题的朋友做参考 先看下UIL的工作流程 在已经允许内存,存储卡缓存的前提下,当一个图片被请求display时,首先要判断图片是否缓存在内存中,如果false则尝试从存储卡读取,如果依然不存在最后才从网络地址

【cocos2dx】rapidjson使用方法以及中文显示的解决方法【续】

上一个博客讲了怎么用rapidjson读取中文字符串,但是有一个很明显的缺陷 就是不能直接读取数据编辑器导出的数据.下面我们来修复这个bug并且将代码精简到不到原来的一半大小. 上一博客的地址是:[cocos2dx]rapidjson使用方法以及中文显示的解决方法 不多说 直接上源码吧: 首先,数据编辑器导出的格式是: [{"id":1,"content":"再次按下返回键退出游戏"},{"id":2,"conten