问题描述
JSONArray 直接调用 toJavaList 方法抛出如下异常:
Exception in thread "main" com.alibaba.fastjson2.JSONException: can not convert from class java.lang.String to class java.lang.String
环境信息
- OS信息: [e.g.:Windows10 21H2 19044.1706]
- JDK信息: [e.g.:Openjdk 1.8]
- 版本信息:[e.g.:Fastjson2 2.0.3]
重现步骤
@Data
public static class TestBean {
private String type;
private Map<String, String> data;
}
public static void main(String[] args) {
JSONArray array = new JSONArray();
array.add(new JSONObject() {{
put("type", "text");
put("data", new JSONObject() {{
put("content", "hello111");
}});
}});
array.add(new JSONObject() {{
put("type", "text");
put("data", new JSONObject() {{
put("content", "hello222");
}});
}});
// Exception in thread "main" com.alibaba.fastjson2.JSONException: can not convert from class java.lang.String to class java.lang.String
System.out.println(array.toJavaList(TestBean.class));
// [Test.TestBean(type=text, data={content=hello111}), Test.TestBean(type=text, data={content=hello222})]
System.out.println(JSON.parseArray(array.toJSONString(), TestBean.class));
}
期待的正确结果
调用 toJavaList 可正常转换
相关日志输出
com.alibaba.fastjson2.JSONException: can not convert from class java.lang.String to class java.lang.String
at com.alibaba.fastjson2.reader.ObjectReaderImplMapTyped.createInstance(ObjectReaderImplMapTyped.java:69)
at com.alibaba.fastjson2.JSONObject.toJavaObject(JSONObject.java:1012)
at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:114)
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。
问题描述
环境信息
重现步骤
期待的正确结果
调用
toJavaList可正常转换相关日志输出
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。