Java 从谷歌地图页面解析JSON响应

Java 从谷歌地图页面解析JSON响应,java,json,google-maps,parsing,Java,Json,Google Maps,Parsing,我试图在java代码中找到解析“普通”(即不使用API)Google Maps页面响应的最佳方法 原因:我想提交一个请求列表的查询字符串(可能是酒店、餐馆等),然后解析返回的JSON。我曾研究过使用Google Maps API,但它似乎没有涵盖我想要做的事情,因为这种URL: geo?q=地址&output=xml&oe=utf8&sensor=false&key= 可以,但这不是: geo?q=地址+酒店&output=xml&oe=utf8&sensor=false&key= (由于“+酒

我试图在java代码中找到解析“普通”(即不使用API)Google Maps页面响应的最佳方法

原因:我想提交一个请求列表的查询字符串(可能是酒店、餐馆等),然后解析返回的JSON。我曾研究过使用Google Maps API,但它似乎没有涵盖我想要做的事情,因为这种URL:

geo?q=地址&output=xml&oe=utf8&sensor=false&key=

可以,但这不是:

geo?q=地址+酒店&output=xml&oe=utf8&sensor=false&key=

(由于“+酒店”术语)。因此,我认为唯一的选择是使用谷歌地图的回应,例如

地址+酒店


并解析最后包含的JSON信息。关于如何最好地实现这一点,有人提供了一些提示吗?

您应该首先绝对确保API不支持您需要的内容。检查文档,甚至联系一个真正的谷歌用户,可能会有回报。我觉得奇怪的是,他们的API不支持像在另一个术语中添加这样简单的东西

如果你被迫“艰难地”去做,主要有两个步骤:

1) 查找并学习Java的JSON解析库。我可以推荐Jackson——快速、坚固,刚刚发布了1.0.0版


2) 教你的代码理解谷歌在回应中使用的规范。这是迄今为止最具挑战性的部分。很抱歉,但我对谷歌在这方面的规范一无所知。如果你能找到官方文件,那就最好了。或者查找其他人发布的非官方文档,这些人必须做类似的工作。否则,您可能必须进行“反向工程”。

您应该首先绝对确保API不支持您需要的内容。检查文档,甚至联系一个真正的谷歌用户,可能会有回报。我觉得奇怪的是,他们的API不支持像在另一个术语中添加这样简单的东西

如果你被迫“艰难地”去做,主要有两个步骤:

1) 查找并学习Java的JSON解析库。我可以推荐Jackson——快速、坚固,刚刚发布了1.0.0版


2) 教你的代码理解谷歌在回应中使用的规范。这是迄今为止最具挑战性的部分。很抱歉,但我对谷歌在这方面的规范一无所知。如果你能找到官方文件,那就最好了。或者查找其他人发布的非官方文档,这些人必须做类似的工作。否则,您可能必须进行“逆向工程”。

Re。谷歌api文档:你试图做的似乎与谷歌的意图背道而驰,谷歌的目的是让你(开发者)可以使用他们的产品(=地图)进行定制增强(通过添加营业网点信息或其他方式)。谷歌地图API网站上有很多东西描述了这一点。但是,解析他们的数据(从他们的数据库中出来)并独立于他们的产品显示数据似乎是相当不同的:术语的第10.12节明确地涵盖了这一点:

…code.google.com/intl/de/api/maps/terms.html

然而,有一些应用程序(比如“围绕我”的iPhone应用程序)似乎就是这样做的:谷歌和苹果在这方面可能有特殊的安排


编辑:或者,您可以用另一种方式来看待这个问题,并使用Google Base API提要,因为这允许您构建指定资源、距离、位置等的查询字符串-也就是说,它返回您需要的数据,而无需使用地图API(根据您的描述,您无论如何都不需要这些数据)。

Re。谷歌api文档:你试图做的似乎与谷歌的意图背道而驰,谷歌的目的是让你(开发者)可以使用他们的产品(=地图)进行定制增强(通过添加营业网点信息或其他方式)。谷歌地图API网站上有很多东西描述了这一点。但是,解析他们的数据(从他们的数据库中出来)并独立于他们的产品显示数据似乎是相当不同的:术语的第10.12节明确地涵盖了这一点:

…code.google.com/intl/de/api/maps/terms.html

然而,有一些应用程序(比如“围绕我”的iPhone应用程序)似乎就是这样做的:谷歌和苹果在这方面可能有特殊的安排


编辑:或者,您可以用另一种方式来看待这个问题,并使用Google Base API提要,因为这允许您构建指定资源、距离、位置等的查询字符串-也就是说,它返回您需要的数据,而不使用Maps API(根据您的描述,您无论如何都不需要).

注意不要在这方面违反谷歌地图TOS。它可能会禁止你尝试做的事情……小心不要违反谷歌地图的TOS。它可能会禁止你想做的事。。。