我有一个格式如下所示的 json 字符串,我正在尝试使用 gson 对其进行反序列化
{
"MAPS": [
{
"value": true,
"enabled": [
{
"isoCountryCode": "USA"
}
]
}
]
}
下面是我的类和枚举的结构
public class Configuration {
private Map<EnumType, List<Object>> enumToObjectMap;
}
public enum EnumType {
MAPS;
}
当我尝试使用
反序列化它时new Gson().fromJson(jsonString, Configuration.class)
我得到 enumToObjectMap 的空值。请帮助我解决同样的问题。
最佳答案
可能有一个更正确的解决方案,但这里有一些解决方法:
将 JSON 字符串包装在父字段中:
jsonString = "{\"enumToObjectMap\":" + jsonString + "}"; Configuration c = new Gson().fromJson(jsonString, Configuration.class);
独立反序列化映射并通过构造函数或 setter 将其传递到您的类中:
Configuration c = new Configuration(); c.setMap(new Gson().fromJson(jsonString, new TypeToken<EnumMap<EnumType, List<Object>>>() {}.getType()));
关于java - 使用 gson 反序列化 EnumMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330860/