【发布时间】:2018-08-04 20:52:38
【问题描述】:
我正在解析 wikipedia API 数据,但不知道如何处理在每个新搜索请求上更改序列化名称。它始终是“页面”数组 (1156934) 的第一项。我正在使用 Q204873 wiki 数据代码请求获取页面标题,例如“碳酸铵”。但在请求之前我不知道 wikipedia pageID (1156934)。
我的 gson 模型有明显问题(1156934 适合这里,但随着我在新搜索查询期间使用不同的 wikidata Q 代码提出请求,它会发生变化):
public class WikiPageList {
@SerializedName("WikiPage") //PROBLEM
private WikiPage wikiPage;
public void setWikiPage(WikiPage wikiPage){
this.wikiPage = wikiPage;
}
public WikiPage getWikiPage(){
return wikiPage;
}
@Override
public String toString(){
return
"WikiPageList{" +
"WikiPage = '" + wikiPage + '\'' +
"}";
}
}
如何只反序列化 pages 数组的第一项?我也可以提供多个 Q 码来接收多个标题,但是如何为每个数组项使用相同的 gson 模型?
【问题讨论】:
-
这不能回答我的问题。我知道@SerializedName 的用途,并在此示例中使用它来匹配标题、pageid 等。但是我不能先提取这个页面,以便能够进一步反序列化页面,因为每个新请求的 pageID 都会发生变化!
-
您需要创建自己的号码解串器并在gson注册。看看这个例子。如果你不能理解,请告诉我。 gist.github.com/peerapongsam/a7771e49562d74843c64f9cf53adbe52
标签: android arrays json wikipedia-api gson