#java #json #parsing
#java #json #синтаксический анализ
Вопрос:
У меня есть объект JSON, который выглядит следующим образом:
{
"SearchResponse":{
"Version":"2.2",
"Query":{
"SearchTerms":"codexperiments"
},
"Web":{
"Total":41,
"Offset":0,
"Results":[
{
"Title":"Code Xperiments - Because IT is an experimental science",
"Description":"The deferred-time page scrolling technique I described in my previous article is not what I really wanted to achieve at first. Although powerful, it lacks of “dynamism”.",
"Url":"http://www.codexperiments.com/",
"CacheUrl":"http://cc.bingj.com/cache.aspx?q=codexperimentsamp;d=4548825798150827amp;mkt=en-USamp;w=a8960869,c9182d07",
"DisplayUrl":"www.codexperiments.com",
"DateTime":"2011-01-14T16:19:00Z"
}
]
}
}
}
Я пытаюсь разобрать заголовок / URL с помощью gson
public class GoogleResults {
private ResponseData responseData;
public ResponseData getResponseData() { return responseData; }
public void setResponseData(ResponseData responseData) { this.responseData = responseData; }
public String toString() { return "ResponseData[" responseData "]"; }
static class ResponseData {
private List<Result> results;
public List<Result> getResults() { return results; }
public void setResults(List<Result> results) { this.results = results; }
public String toString() { return "Results[" results "]"; }
}
static class Result {
private String url;
private String title;
public String getUrl() { return url; }
public String getTitle() { return title; }
public void setUrl(String url) { this.url = url; }
public void setTitle(String title) { this.title = title; }
public String toString() { return "Results[url:" url ",title:" title "]"; }
}
}
и
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
но мои результаты всегда равны нулю. Есть идеи, чего мне не хватает??
Комментарии:
1. Почему вы пытаетесь использовать Google.com Формат JSON для анализа результатов Bing.com ?
Ответ №1:
Убедитесь, что структура данных соответствует структуре данных JSON, иначе она не будет правильно проанализирована. Также, как и то, что сказал другой парень, который ответил, называйте вещи так, как они названы в JSON. Как и в, не забудьте указывать переменные с заглавной буквы, если они указаны с заглавной буквы в JSON.
public class Result {
SR SearchResponse;
static class SR {
W Web;
static class W {
List<R> Results;
static class R {
public String Url;
public String Title;
public String toString() {
return Url Title;
}
}
}
}
public String toString() {
return SearchResponse.Web.Results.toString();
}
}