Skip to content

[BUG]JSONArray toJavaList Exception #255

@MisakaTAT

Description

@MisakaTAT

问题描述

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)

附加信息

如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。

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