Skip to content

[BUG] 嵌套 MAP 的子类在反序列化时无法正确生成实例 #1686

@huangluyu

Description

@huangluyu

FastJson 2.0.26

当出现下面的嵌套Map时,无法正确反序列化成对应的类型

public class A extends HashMap<String, B> {

}
public class B extends HashMap<String, String> {

}

测试如下

@Test
void test_nest_map_subclass() {
    A a = new A();
    a.put("a", new B());
    a.get("a").put("b", "1");

    String jsonString = JSON.toJSONString(a);
    assert jsonString.equals("{\"a\":{\"b\":\"1\"}}");

    A a1 = JSON.parseObject(jsonString, A.class);
    // java.lang.ClassCastException: com.alibaba.fastjson2.JSONObject cannot be cast to B
    assert a1.get("a").get("b").equals("1");
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixed

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions