假设您有一个JSON对象:
{
"mappings": {
"s54dsf45fzd324": "135sdq13sod1tt3",
"21sm24dsfp2ds2": "123sd56f4gt4ju4"
}
}
您对映射对象的唯一了解是它将字符串映射到字符串,但您不知道键值。
是否可以使用GSON解析此对象并循环键/值对?
答案 0 :(得分:5)
只需尝试使用TypeToken
作为类型返回Map<String, Map<String, String>>
。
Reader reader=new BufferedReader(new FileReader(new File("resources/json.txt")));
Type type = new TypeToken<Map<String, Map<String, String>>>() {}.getType();
Map<String, Map<String, String>> data = new Gson().fromJson(reader, type);
// pretty printing
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(data));
输出:
{
"mappings": {
"s54dsf45fzd324": "135sdq13sod1tt3",
"21sm24dsfp2ds2": "123sd56f4gt4ju4"
}
}
答案 1 :(得分:0)
使用Java 8+且没有TypeToken:
new Gson().fromJson(jsonString, JsonObject.class).getAsJsonObject("mappings")
.entrySet().stream().forEach(System.out::println);