FastJSON反序列化多级嵌套泛型对象失败,求方法

林二棍子 2018-02-23 04:48:15
目标是两层泛型的对象: ResObject<ReqObject<Order>>,fastjson版本1.2.35,测试例子如下:
ReqObject<Order> reqObj = new ReqObject<Order>();
Order order = new Order();
order.setMemberId(3);
order.setGoodsId((byte)1);
order.setOrderId(100l);
reqObj.setData(order);
reqObj.setPage(0);
reqObj.setSize(20);
String reqObjStr = JSON.toJSONString(reqObj);
System.out.println("第一次序列化:" + reqObjStr);

reqObj = JSON.parseObject(reqObjStr, new TypeReference<ReqObject<Order>>() {});
reqObjStr = JSON.toJSONString(reqObj);
System.out.println("第二次序列化:" + reqObjStr);

List<Order> orders = new ArrayList<Order>();
orders.add(order);
reqObj.setList(orders);
reqObjStr = JSON.toJSONString(reqObj);
System.out.println("第三次序列化:" + reqObjStr);

reqObj = JSON.parseObject(reqObjStr, new TypeReference<ReqObject<Order>>() {});
reqObjStr = JSON.toJSONString(reqObj);
System.out.println("第四次序列化:" + reqObjStr);

ResObject<ReqObject<Order>> resObj = ResObject.success("查询成功", reqObj);
String resObjStr = JSON.toJSONString(resObj);
System.out.println("第五次序列化:" + resObjStr);

resObj = JSON.parseObject(resObjStr,
new TypeReference<ResObject<ReqObject<Order>>>() {});
resObjStr = JSON.toJSONString(resObj);
System.out.println("第六次序列化:" + resObjStr);
输出结果:
第一次序列化:{"data":{"goodsId":1,"memberId":3,"orderId":100},"page":0,"size":20,"total":0}
第二次序列化:{"data":{"goodsId":1,"memberId":3,"orderId":100},"page":0,"size":20,"total":0}
第三次序列化:{"data":{"goodsId":1,"memberId":3,"orderId":100},"list":[{"goodsId":1,"memberId":3,"orderId":100}],"page":0,"size":20,"total":0}
第四次序列化:{"data":{"goodsId":1,"memberId":3,"orderId":100},"list":[{"goodsId":1,"memberId":3,"orderId":100}],"page":0,"size":20,"total":0}
第五次序列化:{"code":0,"data":{"data":{"goodsId":1,"memberId":3,"orderId":100},"list":[{"goodsId":1,"memberId":3,"orderId":100}],"page":0,"size":20,"total":0},"msg":"查询成功"}
第六次序列化:{}

求解决办法。
...全文
1894 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
林二棍子 2018-03-23
  • 打赏
  • 举报
回复
最后用JSONObject做了。
亲爱的Joe 2018-03-01
  • 打赏
  • 举报
回复
引用 4 楼 Nicholas_Lin 的回复:
[quote=引用 2 楼 z469441432 的回复:] 有没有日志?我粗略看下,好像只有第六次的结果是有问题的。前面五次如果有问题,那应该是你的格式不对。 第六次问题出现在嵌套泛型,应该会有日志抛出
日志里面没有异常。[/quote] logcat配置好了没有?有时候日志打印不全
林二棍子 2018-02-26
  • 打赏
  • 举报
回复
引用 2 楼 z469441432 的回复:
有没有日志?我粗略看下,好像只有第六次的结果是有问题的。前面五次如果有问题,那应该是你的格式不对。 第六次问题出现在嵌套泛型,应该会有日志抛出
日志里面没有异常。
林二棍子 2018-02-26
  • 打赏
  • 举报
回复
引用 1 楼 attilax 的回复:
使用阿里巴巴的json库试试。我记得我上个项目这么解决的。每个json库都有一些bug
fastjson就是阿里的
attilax 2018-02-25
  • 打赏
  • 举报
回复
使用阿里巴巴的json库试试。我记得我上个项目这么解决的。每个json库都有一些bug
亲爱的Joe 2018-02-25
  • 打赏
  • 举报
回复
有没有日志?我粗略看下,好像只有第六次的结果是有问题的。前面五次如果有问题,那应该是你的格式不对。 第六次问题出现在嵌套泛型,应该会有日志抛出

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧