大家好,今天我们来聊聊今天前两周这样碰到的问题,
前端传参:
{ “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数据流的自动转换!
关注我,一起学知识!