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

李说:

因为fastJson会自动屏蔽掉值为null的字段,但是很多时候,我们是需要这个字段的。我们可以将字符串里面的null全部替换为“”,然后再转为json对象,这样就不会屏蔽掉为空的字段了。

同理,我们也可以将所有的null替换我0等。

resultJsonStr = resultJsonStr.replaceAll("null", "\"\"");
时间: 2024-10-13 18:17:09

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属性不显示的解决方法

举个例子 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 = JSO

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

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

FastJson 转换 javaBean 时 null 值被忽略都问题

@[toc] 问题 当 JavaeBean 中某个属性值为 null 时,转换为 JSONObject 对象或者 json 字符串时,该属性值被忽略.如何让不管值是否为 null,转化后该属性还存在,只是值为 null. 情况演示 class St { private String sid; private String sname; private String ssex; public String getSid() { return sid; } public void setSid(St

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

import java.io.IOException; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.

PowerDesigner生成OOM时类名属性名转换

Examples Script 1: Convert a name into a class code (JAVA naming convention)转换类名 .foreach_part(%Name%, "' _-'") %.FU:CurrentPart% .next The conversion script will output: Name = Employee shareholder => Code = EmployeeShareholder Script 2: Con

fastjson生成和解析json数据,序列化和反序列化数据

本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>) 2.通过一个android程序测试fastjson的用法. fastjson简介: Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack

json过滤某些属性 之@jsonignore

Jackson相关: 使用Jackson相关的注解时一定要注意自己定义的属性命名是否规范. 命名不规范时会失去效果.(例如Ename ,Eage 为不规范命名."nameE","ageE"为规范命名)我在此处掉坑半个小时.至于命名规范,大家自己搜索.其实不要太奇葩的命名都是可以得. 如果使用@JsonIgnore注解不起效时请注意一下你的属性名字是否规范 1.@JsonIgnoreProperties 此注解是类注解,作用是json序列化时将java bean中的一

FastJson生成和解析JSON数据

生成和解析JSON数据格式的包有很多种:Gson.json-smart.FastJson.jackjson等,FastJson是一个阿里巴巴的大神开发的开源的Json处理工具包,包括"序列化"和"反序列化"两部分,号称最快.但是我认为没有最快,只有更快,只要这个功能满足我的需求,速度不错就行了,这就是我选择工具的基本标准(不是特别追求性能...). FastJson功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直