在java中将json转换为类时出现问题(谷歌自定义搜索)
我对 json、google apis 很陌生。所以请指导。
我正在尝试用“JAVA”编写一个应用程序,该应用程序将通过 Restful 使用 google 自定义 serch api。我开始学习 json 并浏览 [link] http://code.google.com /apis/customsearch/v1/overview.html 我想编写一些代码。
这显示了 google 搜索的 json:
http://code.google.com/apis/customsearch/v1/reference .html#method_search_cse_list
参考是 http://code.google.com/apis/customsearch/v1/reference.html
从参考中我发现此 CustomSearch 的哪些字段将是 String 或 int 或任何其他数据类型。他们还定义了每个对象的结构。
但我面临一些数据类型的问题:
items.title array The title of the search result, in plain text.
items.snippet array The snippet of the search result, in plain text.
items.pagemap object Contains pagemap information for this search result.
items.pagemap.value array Pagemap information, keyed by the name of this pagemap.
items.pagemap.value.value object The actual pagemap information.
我如何在我的类中定义它们。标题字符串或字符是什么类型的数组,这个页面地图是某种约定,或者任何网站都可以给出自己的标签。
// 类自定义搜索
public class CustomSearch {
public URL getURL() throws MalformedURLException{
return url.getURL();
}
@Key ("items") ArrayList<SearchResult> results;
private @Key SearchURL url;
private @Key Query queries;
}
// 类
class SearchResult {
public SearchResult(){
}
public String getTitle(){
return title;
}
public String getLink(){
return link;
}
public String getSnippet(){
return snippet;
}
private @Key String title; // is this right ?
private @Key String htmlTitle;
private @Key String link;
private @Key String snippet; // is this right ?
private @Key String htmlSnippet;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我按照谷歌示例中的建议使用我的密钥发出了真正的搜索:
这是我得到的(仅显示了一些数据)
它看起来像:
这看起来像我得到的一堆结果中的字符串数据类型,所以我不确定为什么参考文献将其分类为数组
得到的结果来看,这看起来也像字符串数据类型
从我基于 PageMap 描述 这看起来像是网站可以提供的任意键值对数据。
以下是我从测试中获得的一些页面地图,供您参考:
由于页面地图非常非结构化,我将它们存储为
Map页面地图
。正如您所看到的,我只是将原始 JSONObject 保留在页面映射中,因此如果您需要它,您可以随时提取它。除非有一组定义,我们可以将什么类型及其字段放入页面映射中,否则将页面映射的值表示为类可能很困难。I issued a real search using my key as suggested in Google's example:
And here is what I get (showing just bit of data)
It looks like:
This looks like a String datatype from bunch of results that I get, so I am not sure why the reference classified it as array
This looks like a String datatype as well from the results that I got
Based on the PageMap description this looks like an arbitrary key-value pair data that the website could provide.
Below are some of pagemaps that I get from my test for your reference:
As pagemap is very unstructured I would store them as
Map<String, JSONObject> pagemap
. As you can see that I just keep the original JSONObject in pagemap so in case if you need it, you could always extract it. Unless there is a set of definitions what type we could put in pagemap along with its fields, representing the value of the pagemap as a Class could be difficult.