spring boot的返回值里面含有net.sf.json.JSONObject 报错net.sf.json.JSONNull[“empty“])]

文章讲述了在使用SpringBoot处理第三方接口时遇到的json解析问题,涉及到JSONObject和JSONArray中的null值导致500错误。作者提供了三种解决方法:遍历并移除数组中的null值,配置SpringBoot的json序列化,以及建议弃用net.sf.json而使用阿里巴巴的fastjson库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、过程

在对接第三的接口使,发现对方使用的json是net.sf.json.JSONObject。接口在返回值的时候就没有对其进行处理,直接返回了但是,后台也不报错,后端也没有收到响应值,只显示500的报错状态码。仔仔细细的看后台的日志发现:

2024-03-28 10:57:14.514  WARN 34128 --- [nio-8022-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver :
 Resolved [org.springframework.http.converter.HttpMessageNotWritableException: 
Could not write JSON: Object is null; nested exception is 
com.fasterxml.jackson.databind.JsonMappingException:
 Object is null (through reference chain: com.at21.sign2.util.ResultUtils["data"]-
>net.sf.json.JSONObject["dd"]->net.sf.json.JSONArray[1]->net.sf.json.JSONNull["empty"])]

这尼玛,报错就好好报错,你打个warn 是什么鬼,就不会error么!!!屮

二、复现bug

接口的部分代码

    @RequestMapping("test")
    public Object test() {
        JSONArray ja = new JSONArray();
        ja.add("aaa");
        ja.add(null);

        JSONObject js = new JSONObject();
        js.put("aa", 141);
        js.put("bb", n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值