json转map保留null(json转换为map带泛型)

json转map保留null(json转换为map带泛型)在面对一个业务逻辑中 某一个后端项目需要解析其他项目的 response 返回值使用 JSONUtil parseObj response getData 解析 data 数据 完成后想响应给前端却报 JSONUtil parseObj 默认不忽略错误 解析空字符串或 null 时返回空的 JSONObject JSONUtil parseObj jsonStr true 忽略解析错误 解析空字符串或 null



在面对一个业务逻辑中,某一个后端项目需要解析其他项目的response返回值使用JSONUtil.parseObj(response.getData());解析data数据,完成后想响应给前端却报

 

JSONUtil.parseObj默认不忽略错误,解析空字符串或 null 时返回空的 JSONObject。

JSONUtil.parseObj(jsonStr, true):忽略解析错误,解析空字符串或 null 时返回空的JSONObject,解析无效 JSON 字符串时也返回空的 JSONObject。

当修改完成以后,发现还是会报JSONNull错误。
JSONObject在底层是一个Map,当项目封装数据JSON时默认使用jackson包下的writeValueAsString方法,就会报JSONNull错误,另一个项目传过来的null并不会被识别为null,“null”字符串放到JSONObject类中时,取出来的使用会转换成net.sf.json.JSONNull类型,所以在进行writeValueAsString响应的时候就会报错。
解决办法:
全局配置解决,我们可以采用https://blog.csdn.net/JRocks/article/details/116533593 创建配置类形式。

局部解决:
如果不想全局应用会影响其他模块,我们可以采用更改类型方式

代码示例:

 

这里我拿到了list下的数据,把原来list数据给remove了,通过JSONUtil.toBean的形式把JSONObject类型的数据转换成了实体类,再重新塞回去,这样就解决了。
                这样在data中就不是JSONObject类型,而是我的自己的类型,在响应的时候就为null了。
                

编程小号
上一篇 2025-07-11 22:46
下一篇 2025-03-02 07:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/21341.html