当前位置:   article > 正文

阿里巴巴fastjson版本从1.2.72升级到2.0.14。开启autoType,不支持Object对象接收强转成Java对象的解决方案。_fastjson 最新版本

fastjson 最新版本

方案一:Object对象接收强转成Java对象,需要先转成JSON对象,再转换成Java对象。 

  1. @Autowired
  2. public RedisTemplate redisTemplate;
  3. @Test
  4. public void fastJson(){
  5. /*
  6. * redis 数据:
  7. * {"@type":"xx.xx.GoodsDetailDTO","goodsName":"HK GOLD香港黄金","goodsPrice":100.00}
  8. *
  9. * 错误信息:
  10. * java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to xx.xx.GoodsDetailDTO
  11. */
  12. //@Version 1.2.72
  13. GoodsDetailDTO goodsDetail;
  14. //Object对象
  15. Object object = this.getCacheObject(GoodsKeyConstant.GOODS_DETAIL_KEY + 1L);
  16. if (Objects.nonNull(object)) {
  17. //Object对象强转成Java对象
  18. goodsDetail = (GoodsDetailDTO) object;
  19. log.info("商品信息:{}", JSONObject.toJSONString(goodsDetail));
  20. }
  21. //@Version 2.0.14
  22. //先转成JSON对象
  23. JSONObject jsonObject = this.getCacheObject(GoodsKeyConstant.GOODS_DETAIL_KEY + 1L);
  24. //JSON对象转换成Java对象
  25. GoodsDetailDTO goodsDetailDTO = jsonObject.toJavaObject(GoodsDetailDTO.class);
  26. log.info("商品信息:{}", JSONObject.toJSONString(goodsDetailDTO));
  27. }
  28. private <T> T getCacheObject(String key) {
  29. ValueOperations<String, T> operation = redisTemplate.opsForValue();
  30. return operation.get(key);
  31. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/953854
推荐阅读
相关标签
  

闽ICP备14008679号