[alibaba/fastjson]反序列化后Long类型变成了Integer类型

2024-08-28 317 views
3

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

回答

1

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

5

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);

4

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

3

JSON.toJSONString(param)

换成

JSON.toJSONString(param, SerializerFeature.WriteClassName)

试试?