fastjson 反序列化后Long类型变成了Integer类型

yeotifhr  于 2021-11-27  发布在  Java
关注(0)|答案(4)|浏览(438)

Long类型集合通过fastjson序列化再反序列化后变成了Integer类型

snz8szmq

snz8szmq1#

可以提供一下使用的版本以及简单的复现用例吗?

gzszwxb4

gzszwxb42#

1.2.58、1.2.60版本都是这样
List list = new ArrayList<>();
list.add(567890L);
Map<String, List> param = new HashMap<>();
param.put("list", list);
Map<String, List> map = JSON.parseObject(JSON.toJSONString(param), Map.class);

jaql4c8m

jaql4c8m3#

ListSerializer中write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) 方法的writeClassName值有问题,调用SerializerFeature中的isEnabled()方法始终返回false,导致Long类型数据转换成Integer类型

dphi5xsq

dphi5xsq4#

JSON.toJSONString(param)

换成

JSON.toJSONString(param, SerializerFeature.WriteClassName)

试试?

相关问题