我正在努力解决使用包含列表作为值的 GSON 解析 JSON 的问题。这应该很简单,但我不知道如何解决。 JSON 是:
{
"key1": [
"foo1",
"foo2",
"foo3"
],
"key2": [
"foo4",
"foo5",
"foo6"
],
"key3": [
"foo7",
"foo8",
"foo9"
]
}
我认为最好的方法是将其放入 Map<String, List<String>>
中, 但我无法创建 Type
为了它。喜欢:
Type jsonArrayType = new TypeToken<Map<String, List<String>>>(){}.getType();
// Doesn't work, causes exception: "com.google.gson.internal.LinkedTreeMap cannot be cast to java.util.List"
感谢您的帮助!
最佳答案
您将从 getType()
方法获得一个 java.lang.reflect.Type
。用它来解析你的 json。这是一个小的工作示例 (Java 7)
String json = "{\"key1\": [\"foo1\",\"foo2\",\"foo3\"],\"key2\": [\"foo4\",\"foo5\",\"foo6\"],\"key3\": [\"foo7\",\"foo8\",\"foo9\"]}";
java.lang.reflect.Type type = new TypeToken<Map<String, List<String>>>(){}.getType();
Map<String, List<String>> map = new Gson().fromJson(json, type);
System.out.println(map);
此代码段打印以下值
{key1=[foo1, foo2, foo3], key2=[foo4, foo5, foo6], key3=[foo7, foo8, foo9]}
关于java - 如何用 GSON 解析这个 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087857/