我有一个像这样的json
{
"NAME": {
"keyClass": {
"key1": 1,
"key2": 2
},
"keyClass2": {
"key1": 6
}
}
}
我的java看起来像这样
@Expose
protected Map<String, Map<String, Integer>> data = new LinkedHashMap<>();
其中每个Map<String,Integer>
都是一个new LinkedHashMap<>()
,然后我用GSON.toJson(this,File)
将其串行化,它会给予我一个很棒json,当我尝试将其反串行化为GSON.fromJson(File,this)
时,问题出现了,它会试图Map所有内容,除了它有一个平面Map,并不关心嵌套,因此认为keyClass.key1和keyClass2.key1冲突。它抛出了一个巨大的重复键:null。是否存在某种类型的对象,以便嵌套的LinkedHashMap序列化为它自己的,并且在反序列化时不是flatmap?
1条答案
按热度按时间vmdwslir1#
实际上我忘了告诉你一些事情,我使用了一个枚举,它Map到一个字符串,这就是为什么,这里有两个例子,为什么它在第一个上失败:https://gist.github.com/hube12/b86e8257e89ed4220f03f9a527175fca