<p>在面对一个业务逻辑中,某一个后端项目需要解析其他项目的response返回值使用JSONUtil.parseObj(response.getData());解析data数据,完成后想响应给前端却报</p>
讯享网
讯享网
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/ 创建配置类形式。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151455.html