YUI“获取”实用程序来解析JSON响应?

时间:2009-11-29 16:28:41

标签: javascript json yui

YUI“获取”实用程序的文档页面显示:

  

Get Utility非常适合加载你的   自己的脚本或CSS逐步   (延迟加载)或检索   来自中国的跨域JSON数据   你完全信任。

...但是没有任何实际的例子来说明这一点。他们的一个示例实际上并不是从远程服务器请求JSON文档,而是包含实际JavaScript以及JSON数据的文档。

我只对Google Maps API HTTP(REST)界面的JSON响应感兴趣。因为我无法使用“Connect”实用程序进行跨站点脚本编写,所以我正在尝试“获取”实用程序。但是,当然只是将一些JSON数据插入到页面中并不会做任何事情。我必须将它分配给变量。但是如何?

此外,只是将JSON数据插入页面使得Firefox抱怨存在JavaScript错误。可以理解!普通的'JSON数据不会被解析为有效的JavaScript。

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

通常在这种情况下,最简单的方法是返回使用json调用回调的javascript。例如:

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调用得到它时执行'script'并且你已经设置好了。

答案 1 :(得分:0)

行。看起来没有谷歌的HTTP地理编码接口支持JSONP,没有办法做到这一点。 :(

答案 2 :(得分:0)

Sean - 您可能会发现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。

如果谷歌或雅虎!在相关服务器上拥有必要的跨域支持,您应该开展业务。

-Eric

答案 3 :(得分:0)

我使用YAHOO.lang.JSON.parse将字符串解析为json。此外,stringify方法可用于从JSON返回到字符串:

http://developer.yahoo.com/yui/docs/YAHOO.lang.JSON.html