public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("test", Long.valueOf("100"));
String str = JSON.toJSONString(map);
Map<String, Object> newMap = JSON.parseObject(str, Map.class);
Long l = (Long) newMap.get("test");
}
执行的结果是报错
看了别人的博客说,JSON序列化不指定类型的数值,会导致重新转化出来的值的类型由值的大小决定 所以100类型的值会认为是Integer
但是试了指定map的value 的类型为LONG,依然报错。。所以JSON序列化Map里面的数值类型的Value确实会丢失类型