fastjson中的TypeReference的用法以及作用
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数据流的自动转换!
关注我,一起学知识!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)