fastjson中的TypeReference的用法以及作用

大家好,今天我们来聊聊今天前两周这样碰到的问题,

前端传参:

 { “teamList”: [1,15,6,7,25]  }

案例一:

后端使用Map接收时,在通过map的get()方法获取teamIdList时无法转为List<Long>,接收到的而是List<Integer>类型。

后端采用JSONObject接收,在通过json.getObject()获取teamIdList时,可以通过泛型的序列化,将List<Long>作为TypeReference的泛型,故最后收到的就是List<Long>了

案例二:

由于我们在生产者和消费者中都配置了消息转换器,MQ中存储的数据格式变为json,如图:

生产者:

MQ消息:

如下,在消费者中接收消息:虽然传参和接收类型都一致都是HashMap,但是看到没有,此时很明显没有自动转为User类型!!!

所以打算使用alibaba的fastjson工具包:

此时注意了,在new TypeReference的时候没有fastjson包的提示,需要我们自己手动import

手动import

完美成功自动转成实体User类:

案例三:

接收到的数据如下,目标是拿到userId,但是怎么接收,是个问题

直接使用Map强转会出现问题,然而我们可以先把响应过来的结果集的data数据转成JSON形式,再使用fastjson包中的一个泛型类转为目标类,即可实现。

千万记住别导错包,否则用不了,这个包,最好手动导入,以防自动导入不正确;

import com.alibaba.fastjson.TypeReference;

成功以Map<String , String>的形式拿到数据!总结:

阿里巴巴的fastjson包中的TypeReference可以完美解决json数据流的自动转换!

关注我,一起学知识!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值