【发布时间】:2013-12-29 16:40:42
【问题描述】:
我对 GSON 相当陌生,并获得了这种格式的 JSON 响应(只是一个更简单的示例,因此这些值没有意义):
{
"Thomas": {
"age": 32,
"surname": "Scott"
},
"Andy": {
"age": 25,
"surname": "Miller"
}
}
我想让 GSON 把它变成一个 Map,PersonData 显然是一个 Object。名称字符串是 PersonData 的标识符。
正如我所说,我对 GSON 很陌生,只尝试过类似的方法:
Gson gson = new Gson();
Map<String, PersonData> decoded = gson.fromJson(jsonString, new TypeToken<Map<String, PersonData>>(){}.getType());
但这引发了错误:
Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 3141
任何帮助表示赞赏:)
【问题讨论】:
-
您的 Json 无效。 “Andy”之前需要一个逗号
-
对不起,JSON 绝对有效。我只是缩短了 JSON 并忘记了它。更多关于 GSON 部分如何将其解释为键值,其中 value 是要由 GSON 序列化的对象。
标签: java serialization gson