精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
2009-10-26 00:00:00 来源:WEB开发网同时,为了显示目的地机场附近的宾馆,惟一有效的选项是利用一个远程 Web 服务。由于有数千家宾馆,而且??馆列表是不断变化的,所以必须让其他人负责管理这份列表。
Yahoo! 提供了一个本地搜索服务,通过该服务可以搜索一个街道地址、邮政编码,甚至是一个经度/纬度点附近的企业。如果您在 “RESTful Grails” 中已经注册并得到一个 developer 密匙,那么可以在这里重用它。毫不奇怪,您在那时使用的一般搜索 URI 的格式与现在要使用的本地搜索非常类似。上一次,您允许 Web 服务默认地返回 XML。但是,通过添加一个 name=value 对(output=json),就可以得到 JSON。
在浏览器中输入以下内容(不要换行),看看 Denver International Airport 附近的宾馆的 JSON 列表:
http://local.yahooapis.com/LocalSearchService/V3/localSearch?appid=
YahooDemo&query=hotel&latitude=39.858409881591797&longitude=
-104.666999816894531&sort=distance
清单 14 显示了 JSON 结果(删节):
清单 14. Yahoo! 返回的 JSON 结果
{"ResultSet":
{"totalResultsAvailable":"803",
"totalResultsReturned":"10",
"firstResultPosition":"1",
"ResultSetMapUrl":"http:\/\/maps.yahoo.com\/broadband\/?tt=hotel&tp=1",
"Result":[
{"id":"42712564",
"Title":"Springhill Suites-Denver Arprt",
"Address":"18350 E 68th Ave",
"City":"Denver",
"State":"CO",
"Phone":"(303) 371-9400",
"Latitude":"39.82076",
"Longitude":"-104.673719",
"Distance":"2.63",
[SNIP]
更多精彩
赞助商链接