【发布时间】:2013-08-22 00:12:01
【问题描述】:
我有一个 JSON 响应,代表一个如下所示的乐队:
[
{
"Picture": {
"Small": "someurl
"Medium": "someurl",
"Large": "someurl",
"XLarge": "someurl"
},
"Name": "Tokyo Control Tower",
"Guid": "TCT",
"ID": 15
}
]
我正在尝试使用 GSON 将其反序列化为一个名为 SearchResults 的类,其中包含一个波段列表。我的 SearchResults 和 Band 类如下所示:
public class SearchResults {
public List<Band> results;
}
public class Band {
@SerializedName("Name")
public String name;
@SerializedName("Guid")
public String guid;
@SerializedName("ID")
public Integer id;
@SerializedName("Picture")
List<Photo> pictures;
}
在我的代码中,我尝试像这样转换 json 字符串:
protected void onPostExecute(String result) {
Gson gson = new Gson();
SearchResults results = gson.fromJson(result, SearchResults.class);
Band band = results.results.get(0);
bandName.setText(band.name);
}
当我运行此代码时,我从 GSON 收到一条错误消息,提示 Expected BEGIN_OBJECT but is BEGIN_ARRAY。关于如何解决的任何想法?
【问题讨论】:
-
pictures是您的类定义中的一个列表(即 JSON 数组),但它是您提供的示例 JSON 中的一个 JSON 对象。您是打算在 JSON 中使其成为一个数组,还是创建一个“图片”类或映射来表示各种图片大小?