我的json:
{
random1:{
randomKey1:{
"id":"a",
"name":"jack"
},
randomKey2:{
"id":"b",
"name":"alice"
}
},
random2:{
randomKey1:{
"id":"c",
"name":"paul"
}
}
}
我的每个json对象还包含对象。
我使用Gson反序列化。但不是我的预期结果。
我希望对输出Map<String, Map<String, Any>>
进行反序列化
我使用JsonDeserializer
来实现。但是for
循环时会出现问题。
for ((key, element) in jsonObject.entrySet()) {
for ((key2, element2) in element.asJsonObject.entrySet()) {
result2[key2] = element2
}
result[key] = result2
}
输出始终为
{random1={randomKey1={value}, randomKey2={value}, randomKey3={value}}, random2={randomKey1={value}}}
预期产量
{random1={randomKey1={value}, randomKey2={value}}, random2={randomKey1={value}}}
答案 0 :(得分:0)
这是一个对象类型的哈希映射,它按一个全键进行迭代,因此它从JSON中获取动态键:
Gson gson = new Gson();
Type mapType = new TypeToken<Map<String,Map<String, String>>>() {}.getType();
Map<String,Map<String, String>> map = gson.fromJson(new FileReader("Put YOur JSOn Here "), mapType);
//显示值
for (Map.Entry<String,String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// do stuff
}