[alibaba/fastjson]toJavaObject过程中Long型被翻译成Integer

2023-12-15 832 views
6

复现条件,实体类套实体类套Map<String,Object>

回答

3
    TestDto d = new TestDto();
    Map<String, Object> child = new HashMap<>();
    child.put("test", 12345L);
    d.getArgs().put("child", child);
    ParentDto p = new ParentDto();
    p.setResource(d);
    JSONObject jsonObject = (JSONObject) JSONObject.toJSON(p);
    ParentDto p1 = JSONObject.toJavaObject(jsonObject, ParentDto.class);
5

执行最后一句话,ParentDto里面取到的12345是Integer而非一开始put进去的Long