я начинаю использовать Gson с Модернизированным, а не Джексоном, чтобы разобрать некоторые JSON из API Википедии, который структурированная так:Как разобрать объект JSON с Gson на карту неизвестного типа
{
"batchcomplete": "",
"query": {
"pages": {
"21721040": {
"pageid": 21721040,
"ns": 0,
"title": "Stack Overflow",
"extract": "Stack Overflow
В объект «pages», я пытаюсь сопоставить следующий блок с объектом Map типа ключа/значения String и WikiSummary, но объект возвращает null. Через Джексона, если я правильно помню, вы могли бы сделать прямое сопоставление, как это, так как я не знаю значений объектов, которые имеют «страницы» внутри него.
WikiPages.class
public class WikiPages {
public Map<String, WikiSummary> summaryMap;
public WikiPages(Map<String, WikiSummary> summaryMap) {
this.summaryMap = summaryMap;
}
public Map<String, WikiSummary> getSummaryMap() {
return summaryMap;
}
public void setSummaryMap(Map<String, WikiSummary> summaryMap) {
this.summaryMap = summaryMap;
}
}
WikiSummary
public class WikiSummary {
public int pageid;
public String title;
public String extract;
public WikiSummary(int pageid, String title, String extract) {
this.pageid = pageid;
this.title = title;
this.extract = extract;
}
public int getPageid() {
return pageid;
}
public void setPageid(int pageid) {
this.pageid = pageid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getExtract() {
return extract;
}
public void setExtract(String extract) {
this.extract = extract;
}
}
Поскольку ваши свойства json являются динамическими, самым простым решением было бы сделать страницы HashMap. Гсэн может разобрать это просто отлично. –
whizzle