记 fastjson泛型转对象 第一次可以正常转,第二次就变成JSONArray 问题

在解析json数据的时候,在使用泛型对象的时候即:

public class ResultMsgDto<E> implements Serializable {

    private static final long serialVersionUID = 123L;

    private int resultCode;
private E resultObject;
private String resultMsg;  // get set
}

第一次在使用网址:yii666.com

  ResultMsgDto<List<ArticleDto>> resultMsg = JSON.parseObject(result, new TypeReference<ResultMsgDto<List<ArticleDto>>>() {});

把json字符串转换为 对应泛型对象的时候是可以的,因为我增加一个数据,从服务器中再次获取json字符之后,再次调用上面的方法的时候,这次没有成功,而是JSONArray 类型的数据

之后网上找到了解决方法:

1、https://github.com/alibaba/fastjson/issues/569  这里面有问题 但是已经解决了 这个时候你就要看看你的fastjson的jar包版本,你可以换一个高版本的试试

2、如果换了高版本还是不行的话,那估计你犯了跟我一样的错误文章来源地址https://www.yii666.com/article/754288.html

这个时候你就需要查看你的代码中,有没有 没有使用泛型而直接使用ResultMsgDto,例如下面这个错误的列子:文章来源地址:https://www.yii666.com/article/754288.html

  ResultMsgDto resultMsg = JSON.parseObject(result, new TypeReference<ResultMsgDto>() {});

这个时候就要把这语句中的泛型类型加上去,即使你用不着他对于的对象,但是还需要加上泛型网址:yii666.com<

切记:解决方案:统一使用泛型类型,项目中不允许没有泛型类型的ResultMsgDto,就不会存在这个问题。文章地址https://www.yii666.com/article/754288.html

参考:http://blog.csdn.net/ykdsg/article/details/50432494   感谢这位同学的无私奉献

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

记 fastjson泛型转对象 第一次可以正常转,第二次就变成JSONArray 问题-相关文章

  1. 记 fastjson泛型转对象 第一次可以正常转,第二次就变成JSONArray 问题

  2. 从fastjson多层泛型嵌套解析,看jdk泛型推断

  3. C#泛型序列化困境

  4. 《徐徐道来话Java》(2):泛型和数组,以及Java是如何实现泛型的

    数组和泛型容器有什么区别要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance)、逆变性(contravariance)和无关性(invariant)。若类A是类B的子类,则记作A ≦ B。设有变换f(),若:在Java中,数组具有协变性,而泛型具有无关性,示例代码如下:这两句代

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png