net.sf.json.JSONNull["empty"])异常解决方案

之前遇到这个问题的情况是:给App做转发接口的,当时的项目是存在和其他平台交互出现的问题,所以他们那边平台比较大,东西封装的比较多,可能他们的架构师当时没有想到这个问题,所以导致出现这个bug,由于不能从他们平台解决这个bug,所以只能那个平台交接的时候自己来做处理
出现的异常:
HTTP Status 500 - Could not write JSON: Object is null; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["errorCode"]->net.sf.json.JSONNull["empty"])
出现的情况:

a).和A平台交互,但是需要拿取A平台查询到的信息。
b).给别人做对外API,出现了此类问题

问题解决方案:

其实最主要的就是对他进行非空判断就可以,方法有很多的,但是也都是不太一样的,

方法一

实体类最上边添加的是@JsonInclude(JsonInclude.Include.NON_NULL)
1、如果放在属性上,如果该属性为NULL则不参与序列化 ;
2、如果放在类上,那对这个类的全部属性起作用 ;

参数说明:

JsonInclude.Include.ALWAYS 默认
JsonInclude.Include.NON_DEFAULT 属性为默认值不序列化
JsonInclude.Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化
JsonInclude.Include.NON_NULL 属性为NULL 不序列化

方法二(不建议使用这个方法):

写一个工具类,就是对实体类的属性进行一个一个的非空判断,这种方法不可取,非常的麻烦,对代码影响还不是太好。

在实战中学习,在快乐中成长

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值