Controller返回json格式数据报反序列化异常的解决办法

自己对序列化的东西不怎么明白,但是最后还是解决了,记录下这个奇葩的问题。

我的场景:

我需要自己组装个json格式的数据,然后controller返回给客户端。

组装json的时候,我是这样写的:

JSONObject jsonObject = new JSONObject();
jsonObject.put("key", UUID.randomUUID().toString());
jsonObject.put("session", UUID.randomUUID().toString());
LOGGER.info("组装的json数据:[{}]",jsonObject);

以上代码没有任何问题,debug时候也可以走通,但是在最后我将这个jsonObejct对象返回给客户端的时候报了个错误,错误信息时这样的:

"exception":"org.springframework.http.converter.HttpMessageNotWritableException"
"message":"Could not write content: No serializer found for class cn.*.*.search.dto.SearchedNotice and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )

百度一下关键信息就知道是什么反序列化出了问题,百度的方法试了几种没有解决,依然存在这个问题。

最后看了一下自己创建JSONObject对象时候导的包是:org.json;

我的解决办法:换个包,将原来的导的org.json包换成com.alibaba.fastjson.JSONObject;(换成alibaba的)

重启项目,错误不再重现,且客户端成功接收到了我返回的json数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>