我正在尝试使用 jQuery 访问 JSON 数据并根据变量获取一组特定的值。我在使用 [] 之前已经这样做过,但由于某种原因我无法弄清楚这次出了什么问题。
我的 JSON 文件(由 getJSON 读取,名为 jsonmaker.php)如下所示:
{"0107001":{"label":"Canada","x":"0","y":"0.34"},"0107002":{"label":"USA","x":"-0.16","y":"0.53"}}
然后我有一个函数,本质上是这样的:
function addAttrib(attrib) {
$.getJSON("jsonmaker.php", function(data) {
alert(data[attrib].label);
}
}
但它一直返回未定义。知道我做错了什么吗?我已经检查过以确保要添加到 attrib 的 var 是 0107001,没有问题。
此外,我知道我的 JSON 文件是一个 php 文件,因此我可以过滤返回的内容以匹配 attrib 值,但我希望开发一些可以纯粹在 HTML 和 JS 上运行的东西,所以我可以打包 JSON将该项目归档并随身携带。无需使用 PHP 等 Web 服务器。
最佳答案
数据访问本身对我有用:
var data = {"0107001":{"label":"Canada","x":"0","y":"0.34"},"0107002":{"label":"USA","x":"-0.16","y":"0.53"}};
var attrib = "0107002";
alert(data[attrib].label); // USA
确保在调用 addAttrib() 和 AJAX 请求完成且匿名回调函数被调用之间,attrib
保持不变。
更新:这是您真正的代码吗?您至少有一个语法错误:
function addAttrib(attrib) {
$.getJSON("jsonmaker.php", function(data) {
alert(data[attrib].label);
}); // <- Please note missing ");"
}
关于javascript - 使用变量访问 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4043529/