jquery中的json对象无法读取?

时间:2011-10-21 10:55:52

标签: javascript jquery json

我正在尝试将google页面中的财务信息读入json对象。

代码如下:

            try {
                $.getJSON("http://finance.google.com/finance/info?client=ig&q=NSE:GOLDBEES&jsoncallback=?",function(data){
                    alert(data);//var jsondata = data;
                    //jsonobj = $.parseJSON(jsondata);
                    //alert(jsonobj[0].id);
                });
            } catch(e) {
                alert(e.toString());
            }

然而,我一直在使用firebug

时出现此错误
   invalid label
   "id": "4052464" 

是否可以阅读此信息。我的最终目标是创建一个不使用服务器端脚本的Windows 7小工具,可以在任何Windows 7系统中使用。

感谢所有帮助。

约翰

2 个答案:

答案 0 :(得分:2)

响应无效JSON(响应带有前缀//),因此无论如何jQuery都无法正确解析它。

&jsoncallback=?更改为&callback=?

所以

$.getJSON("http://finance.google.com/finance/info?client=ig&q=NSE:GOLDBEES&callback=?", function(data) {
    alert(data)
});

答案 1 :(得分:0)

response from Google有两个前导/,使得回复无效JSON ... for some reason

因此,您无法使用jQuery.getJSON,因为它需要JSON响应。相反,您应该使用jQuery.get,并在删除两个前导斜杠后自行解析JSON。

jQuery.get('http://finance.google.com/finance/info?client=ig&q=NSE:GOLDBEES&jsoncallback=?', function (string) {
    var validJson = string.slice(2);
    var obj = jQuery.parseJSON(validJSON);

    // use obj
});

还有两点:

  1. 没有使用JSONP,因此您的请求网址中不需要jsoncallback=?
  2. Windows边栏has been retired,因此您无法将完成的小工具发布到官方图库。