Java Json对象另存为字符串而不是对象
我正在使用Json/Gson保存和加载一个hashmap 当我用key String和Value enum元素保存hashmap属性时。例如:Java Json对象另存为字符串而不是对象,java,json,oop,gson,Java,Json,Oop,Gson,我正在使用Json/Gson保存和加载一个hashmap 当我用key String和Value enum元素保存hashmap属性时。例如: private static enum Rank { BOSS; } public static void main(String[] args){ HashMap<Object, Object> attributes = new HashMap<>(); attributes.put("test",
private static enum Rank {
BOSS;
}
public static void main(String[] args){
HashMap<Object, Object> attributes = new HashMap<>();
attributes.put("test", Rank.BOSS);
//save json file here...
}
然后,加载的映射已将Rank.BOSS的枚举元素更改为字符串“BOSS”
现在的结果是:
"attributes": {
"test": "BOSS",
},
它现在是一根弦
我如何克服这个问题
我希望它再次作为enum元素而不是字符串表示加载尝试使用Gson
TypeAdapterFactory
如果您需要比从JSON本身推断出的更强的类型,您必须告诉您的JSON库。最简单的方法是使用适当的bean类,而不是Map
。否则它怎么知道键“test”应该包含这个Enum呢?@Thilo的概念很好,我建议这样做。
"attributes": {
"test": "BOSS",
},