我正在尝试从我找到的 Google API 中获取一些数据。问题是我找不到这个 ASP 的文档(它一定是秘密的)。出于某种原因,我无法从以下链接中提取 JSON 数据。
http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD&callback=?
我的错误显示在我的JSFiddle
我收到错误消息:“未捕获的语法错误:意外的令牌:”
对此的任何帮助都会很棒。
我正在尝试从我找到的 Google API 中获取一些数据。问题是我找不到这个 ASP 的文档(它一定是秘密的)。出于某种原因,我无法从以下链接中提取 JSON 数据。
http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD&callback=?
我的错误显示在我的JSFiddle
我收到错误消息:“未捕获的语法错误:意外的令牌:”
对此的任何帮助都会很棒。
计算器 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。