如何用 GSON 解析这个 JSON 字符串?
How to parse this JSON String with GSON?
无法弄清楚如何使用 GSON 将以下 JSON 字符串解析为任何适当的对象以检索其数据。
字符串是:
{"Values":[{"Date":"2014-10-01","Value":386788.0},{"Date":"2014-11-01","Value":429131.0},{"Date":"2014-12-01","Value":215217.0},{"Date":"2015-01-01","Value":270422.0},{"Date":"2015-02-01","Value":261412.0},{"Date":"2015-03-01","Value":354668.0}]}
我发现方括号表示它是一个ArrayList,但里面还有另一个对象。
如果我尝试遍历 ArrayList:
Map<String,ArrayList<String>> map = gson.fromJson(json, Map.class);
然后它抱怨:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.String
如果我尝试相反的方法:
Map<String,LinkedTreeMap<String,String>> map = gson.fromJson(json, Map.class);
然后它也在抱怨:
java.util.ArrayList cannot be cast to com.google.gson.internal.LinkedTreeMap
不明白那个格式:-/
感谢任何建议!
JsonParser parser = new JsonParser();
JsonObject object = (JsonObject)parser.parse(yourString);
for (Map.Entry<String,JsonElement> entry : object.entrySet()) {
JsonArray array = entry.getValue().getAsJsonArray();
for (JsonElement elementJSON : array) {
[...]
}
}
无法弄清楚如何使用 GSON 将以下 JSON 字符串解析为任何适当的对象以检索其数据。 字符串是:
{"Values":[{"Date":"2014-10-01","Value":386788.0},{"Date":"2014-11-01","Value":429131.0},{"Date":"2014-12-01","Value":215217.0},{"Date":"2015-01-01","Value":270422.0},{"Date":"2015-02-01","Value":261412.0},{"Date":"2015-03-01","Value":354668.0}]}
我发现方括号表示它是一个ArrayList,但里面还有另一个对象。
如果我尝试遍历 ArrayList:
Map<String,ArrayList<String>> map = gson.fromJson(json, Map.class);
然后它抱怨:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.String
如果我尝试相反的方法:
Map<String,LinkedTreeMap<String,String>> map = gson.fromJson(json, Map.class);
然后它也在抱怨:
java.util.ArrayList cannot be cast to com.google.gson.internal.LinkedTreeMap
不明白那个格式:-/
感谢任何建议!
JsonParser parser = new JsonParser();
JsonObject object = (JsonObject)parser.parse(yourString);
for (Map.Entry<String,JsonElement> entry : object.entrySet()) {
JsonArray array = entry.getValue().getAsJsonArray();
for (JsonElement elementJSON : array) {
[...]
}
}