-
Notifications
You must be signed in to change notification settings - Fork 550
Description
问题描述
由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)