fastjson生成json时Null转为空字符串""或者不展示问题解决


原文地址:https://blog.youkuaiyun.com/qq_31138523/article/details/65627965


在开发过程中,系统间对接是再正常不过的行为了,但是在对接过程中由于各种原因可能为空字段必须显示为空字符串,或者不显示,经过查询发现一枚神器,记录一下,以免忘记。 
   举个栗子:

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序列化属性。fastjson提供了此方法解决这个问题: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.WriteNullStringAsEmpty);  
System.out.println(str);  
//输出结果:{"a":1,"b":"","c":"","d":"wuzhuti.cn"}  

 

### 回答1: 这是一个错误提示,提示应用程序监听器类org.springframework.web.context.ContextLoaderListener的配置出现了问题。可能的原因是应用程序缺少Spring Framework的配置文件或配置文件正确。 ### 回答2: 错误配置应用程序侦听器的类org.springframework.web.context.ContextLoaderListener通常在使用Spring框架出现。该错误的主要原因是Spring框架配置文件的错误或丢失。在Tomcat服务器运行,其日志文件将显示与“SEVERE:Error configuring application listener of class org.springframework.Web.context.ContextLoaderListener”相关的错误消息。为了解决这个问题,我们可以尝试以下几个步骤。 首先,我们必须确认应用程序中的Web.xml文件中是否已添加ContextLoaderListener配置。我们可以检查是否存在以下配置行: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 如果该配置行存在,则需要添加它。 其次,Spring配置文件可能存在错误。我们需要检查Spring配置文件是否有语法错误并正确地配置所有bean。如果有任何语法错误,我们必须对其进行纠正。 最后,我们可以升级Tomcat服务器版本。该错误可能是由于Tomcat版本导致的。在升级Tomcat版本,我们需要考虑与Spring框架兼容的Tomcat版本。 总之,“SEVERE:Error configuring application listener of class org.springframework.web.context.ContextLoaderListener”错误通常由Spring框架配置文件的错误或丢失引起,我们可以通过检查在Web.xml文件中的ContextLoaderListener配置,检查Spring配置文件的语法错误以及升级Tomcat服务器版本来解决问题。 ### 回答3: 这种报错通常是因为Spring框架在初始化出错,导致web应用程序无法正常启动。具体原因可能有多种,但常见的原因包括以下几种: 1. Spring配置文件出错:可能是配置文件中存在语法错误、引用了存在的Bean或属性、使用了支持的标签等。这需要检查配置文件是否正确,并修复相关问题。 2. 依赖包冲突:由于同版本的jar包可能存在相同的类名或方法名,导致冲突。这需要检查依赖包及其版本是否正确,并升级或降级相应的jar包。 3. Classpath配置错误:由于web应用程序的classpath配置正确,导致无法找到应用程序需要的类文件。这需要检查classpath是否正确,并修改相关配置。 4. 操作系统或Java虚拟机配置问题:例如操作系统支持特定的Java虚拟机版本,或者Java虚拟机配置问题。这需要检查操作系统和Java虚拟机的配置,并采取适当的措施。 如果以上方法仍然无法解决问题,可以尝试打开应用程序的日志文件,并查看详细的错误信息,以便更好地定位和解决问题。同,也可以查阅Spring框架的官方文档,寻找可能存在的解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值