ObjectMapper序列换Map时候的坑
今天,工作中,再一个分布式应用中,一个服务要调用另外一个服务,传输的数据时,返回的类型的Map<Integer,Integer>类型
的数据,但是我打印日志发现,数据是有数据的,但是通过key始终get不出来数据,后来发现传输回来的数据的key变成了String, 是不是
是诡异。
打印日志的代码如下
打印的结果如下:
作为技术人,看到这样的情况,就像刨根问底,然后的看到了项目中使用的源码,然后本地模拟了下,发现原来
是ObjectMapper的序列化的问题。
打印处理的是 null,22,说明key变成了String。
怎么解决这个问题,看下代码:
很简单只要转化的时候讲Object.class转化成map.getClass();,就可以了,结果输出的是 22,null