当前位置 博文首页 > Jqcode:Controller返回json格式数据报反序列化异常的解决办法

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

    作者:[db:作者] 时间:2021-09-16 10:36

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

    我的场景:

    我需要自己组装个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数据。

    cs
    下一篇:没有了