Skip to content

[BUG]JSONObject.getObject获取List时出现java.lang.UnsupportedOperationException #536

@LoftyKumo

Description

@LoftyKumo

问题描述

由fastjson1升级至fastjson2的过程中
fastjson2版本2.0.7
使用JSONObject.getObject(key, List.class)时, 会抛出java.lang.UnsupportedOperationException

fastjson2版本2.0.8 2.0.9-SNAPSHOT
使用JSONObject.getObject(key, List.class)时,会抛出com.alibaba.fastjson2.JSONException: UnsupportedOperation

环境信息

  • OS信息: macOS 10.13.6
  • JDK信息: JDK 11.0.2
  • 版本信息:2.0.7 2.0.8 2.0.9-SNAPSHOT

重现步骤

使用测试代码如下
Map<String, Object> map = null;
List objects = Lists.newArrayList();
for (int i = 0; i < 1; i++) {
map = Maps.newHashMap();
map.put("cursor", i);
objects.add(map);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("data", objects);
jsonObject.getObject("data", List.class);

期待的正确结果

运行通过, 可正常获取data字段数据

相关日志输出

fastjson版本2.0.7
java.lang.UnsupportedOperationException
at com.alibaba.fastjson2.reader.ObjectReaderBaseModule$PrimitiveImpl.createInstance(ObjectReaderBaseModule.java:1809)
at com.alibaba.fastjson2.reader.ObjectReaderImplObject.createInstance(ObjectReaderImplObject.java:15)
at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:78)
at com.alibaba.fastjson2.reader.ObjectReaderImplList.createInstance(ObjectReaderImplList.java:186)
at com.alibaba.fastjson2.JSONObject.getObject(JSONObject.java:1273)

fastjson2.0.8 fastjson2.0.9-SNAPSHOT
com.alibaba.fastjson2.JSONException: UnsupportedOperation
at com.alibaba.fastjson2.reader.ObjectReaderBaseModule$PrimitiveImpl.createInstance(ObjectReaderBaseModule.java:1810)
at com.alibaba.fastjson2.reader.ObjectReaderImplObject.createInstance(ObjectReaderImplObject.java:15)
at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:78)
at com.alibaba.fastjson2.reader.ObjectReaderImplList.createInstance(ObjectReaderImplList.java:186)
at com.alibaba.fastjson2.JSONObject.getObject(JSONObject.java:1273)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions