繁体   English   中英

将Bing JSON转换为Java

[英]Converting Bing JSON to Java

我有一个看起来像这样的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=codexperiments&d=4548825798150827&mkt=en-US&w=a8960869,c9182d07",
           "DisplayUrl":"www.codexperiments.com",
           "DateTime":"2011-01-14T16:19:00Z"
        }
     ]
  }
}
}

我正在尝试使用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);

但我的结果始终为空。 任何想法,我缺少什么?

确保将数据结构与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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM