javascript - 使用变量访问 JSON 值

标签 javascript jquery json

我正在尝试使用 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/

相关文章:

json - 使用 IXmlSerializable 对对象进行 WCF JSON 序列化

javascript - 为 Iframe 的父 div 标签设置宽度

javascript - HTML <range> 初始值为 jQuery

javascript - 使用 json 和 javascript 和 css 在我的 vimeo 播放器的缩略图下添加标题

javascript - 使用字体系列、字体大小和颜色设置内容可编辑列表 (<li>)

jquery - 从 jQuery 对象中删除链接

javascript - 选择要显示和隐藏的 html 类

javascript - 使用 jQuery.ajax 时可以访问和修改 beforeSend 中的数据吗?

c++ - glTF 骨骼矩阵是在局部空间还是模型空间中指定的?

json - 在 kotlinx.serialization 中编码/解码 JSON "string"