Преобразование Bing JSON в Java

#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();
    }
}