gson没有用泛型键/值反序列化正确嵌套的Map

5cg8jx4n  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(208)

我使用gson将一个json字符串反序列化为一个java对象,该对象包含一个带有通用键/值的嵌套Map。
在我的调试中,我看到gson将第一个泛型类型转换为正确的对象。但是第二个不转换,因此充当字符串。

class A {
    public B<C_Enum> b = new B<C_Enum>();
}
class B<T> {
    private Map<T, T> map = new HashMap<T, T>();
}
enum C_Enum {
    VAL1, VAL2;
}
main() {
    String json = "{\"b\": {\"map\": {\"NOT_VALID\": \"NOT_VALID\"}}}";
    GsonBuilder builder = new GsonBuilder();
    Gson customDeserializer = builder.create();
    A a = customDeserializer.fromJson(json, A.class);
}

在本例中,Map用null键填充,因为not\ u valid不是有效的c\ u enum值,Map的值用not\ u valid填充。
注意:我的实际代码有点不同,但问题是相同的

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题