创建一个JSON响应的类
问题描述:
我想下面的代码从网上下载。这是关于阅读谷歌搜索页面的总搜索结果。创建一个JSON响应的类
import com.google.gson.Gson;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLEncoder;
public class Test {
public static void main(String[] args) throws Exception {
String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String search = "my";
String charset = "UTF-8";
URL url = new URL(google + URLEncoder.encode(search, charset));
System.out.println(google + URLEncoder.encode(search, charset));
Reader reader = new InputStreamReader(url.openStream(), charset);
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
System.out.println(results.getResponseData().getResults().size());
}
}
搜索结果是
"queries": {
"nextPage": [
{
"title": "Google Custom Search - flowers",
"totalResults": 10300000,
"searchTerms": "flowers",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"cx": "013036536707430787589:_pqjad5hr1a"
}
],
我想创建类`GoogleResults'上面响应
答
的问题是,你指的是GoogleResults类不合格的名称不导入它。
请使用完全限定的名称或导入它。我会张贴一个例子,但我不确定课程在哪里。
编辑:通过搜索您发布的代码,我发现一个complete example。事实证明,GoogleResults
不是标准的库类,它是一个你期望自己定义的类。
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 "Result[url:" + url +",title:" + title + "]"; }
}
}
+0
感谢您的回复。在此我只想找到totalResults – user2302288 2013-04-25 15:44:47
你应该发布错误。 – Stephan 2013-04-25 15:21:11
未找到GoogleResults.class。 GoogleResults类的内容应该是什么 – user2302288 2013-04-25 15:22:27
你从哪里得到这段代码? GoogleResults不在[com.google.gson.Gson]包中(http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html) – Erich 2013-04-25 15:27:34