YUI“获取”实用程序来解析JSON响应?
的YUI的文档页面“获取”效用说:YUI“获取”实用程序来解析JSON响应?
获取工具是理想的加载你的 自己的脚本,CSS逐渐 (延迟加载),或者从源检索 跨域JSON数据在 你有完全信任。
...但没有任何实际的例子来说明如何去做。他们的一个示例实际上并未从远程服务器请求JSON文档,而是包含实际JavaScript以及JSON数据的文档。
我只对来自Google Maps API HTTP(REST)接口的JSON响应感兴趣。由于我无法使用“连接”实用程序执行跨站点脚本,因此我正在尝试“获取”实用程序。但是,仅仅将一些JSON数据插入页面当然不会做任何事情。我必须将它分配给一个变量。但是如何?
此外,只需将JSON数据插入页面,Firefox就会抱怨存在JavaScript错误。可以理解! Plain ol'JSON数据不会被解析为有效的JavaScript。
任何想法?
好的。看起来没有Google的HTTP Geocoding接口支持JSONP,没有办法做到这一点。 :(
通常在这种情况下,最简单的方法就是返回调用json的回调函数。例如:
function xdCallback(json) {
// here I can do whatever I need with json, maybe
SomeModule.heresTheJson(json);
// or
globalVar.json = json;
// etc
}
等等你的服务器端返回不只是JSON,而是类似:
xdCallback({ json: 'goes', here: true });
...执行“脚本”当您通过Ajax调用得到它,你已经设定好了。
呀。不幸的是,我无法控制远程资源。 (这是谷歌地图HTTP API ...是的,这是跨网站,但我相信谷歌。) – Sean 2009-11-29 16:59:52
肖恩 - 你可能会发现,YUI Connection Manager的XDR的支持是你在找什么 -
http://developer.yahoo.com/yui/examples/connection/xdr.html(YUI 2) http://developer.yahoo.com/yui/3/examples/io/io-xdr.html(YUI 3)
使用连接管理器( YUI 2)或IO(YUI 3)来引入JSON,然后使用代码行中的JSON组件解析JSON,一旦它被加载,就可以解析JSON。
如果Google或Yahoo!拥有必要的跨域支持相关的服务器,你应该做生意。
-Eric
嗨Eric, 事实上,他们都没有跨域支持。 :( 肖恩 – Sean 2009-12-01 08:39:06
我已经使用YAHOO.lang.JSON.parse将字符串解析为json。也可以使用字符串化方法从JSON返回一个字符串:
雅虎的地理编码API,虽然。总的来说,我发现雅虎的API更友好。 – 2009-11-29 17:24:50
有链接?从我看到的,雅虎的API甚至不支持JSON ... http://developer.yahoo.com/maps/rest/V1/geocode.html – Sean 2009-11-29 19:03:02