使用jQuery获取Json数据

Getting Json data using jQuery Unexpected token :

本文关键字:数据 Json 获取 jQuery 使用      更新时间:2023-09-26

我试图从我发现的谷歌API中获得一些数据。麻烦的是我找不到这个ASP的文档(它必须是一个秘密)。由于某种原因,我无法从以下链接中提取JSON数据。

http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD&callback=?
我的错误显示在我的JSFiddle

我得到错误:"Uncaught SyntaxError: Unexpected token: "

计算器API没有返回有效的JSON。标签没有引号,所以不能直接解析。您唯一能做的就是在让jQuery解析JSON之前尝试手动向标签添加引号。这将使它有效。

{lhs: "1 British pound",rhs: "1.5637 U.S. dollars",error: "",icc: true}
 ^ no quotes

下面是一个快速而肮脏的解决方案,它用自己替换每个标签并添加引号。这不是很健壮,因为每个标签都是硬编码的,但它应该给你正确的想法。

        var data = '{lhs: "1 British pound",rhs: "1.5637 U.S. dollars",error: "",icc: true}';            
             data = data.replace('lhs:', '"lhs":');
             data = data.replace('rhs:', '"rhs":');
             data = data.replace('error:', '"error":');
             data = data.replace('icc:', '"icc":');
            data = JSON.parse(data);
            for(i in data) {
                content = data[i];
                $("#data-list").append(content.text + "<hr />");
            }

为了绕过同源策略,我将通过同一域中的服务器端脚本代理API请求。

jQuery支持JSONP,但问题是jQuery会在我们修改JSON之前尝试解析它