php - 访问 JSON 对象属性

标签 php javascript ajax json

这些是我的 JSON 对象。

({
"0":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F86040788&amp",
"1":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F87126537&amp",
"2":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F84915833&amp",
"3":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F87317484&amp",
"4":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F86548283&amp"
})

我用 Ajax 获取它们,这就是我获取它们的方式:

data[0]data[4]

为什么 data.1 等不工作?我不明白为什么我可以像 data[0] 这样访问对象,因为它们不是数组。

最佳答案

Why is data.1, etc is not working?

那是因为根据 Javascript 的语法,data.1 是一个无效的语法。打开浏览器控制台并尝试:

var obj = {};
obj[0] = "test";
obj.0; //SyntaxError: Unexpected number

I don't get why I can acess the objects like this data[0], because they are not arrays.

在javascript中,数组和map/dictionary/association数组是一回事。您可以通过 object[key] 语法或 object.key 语法访问。唯一的限制是它应该可以被解析器解析(它应该是一个标识符),否则它会失败——就像你遇到的情况一样。另一个例子:

var obj = {"test-data":1, "test": 2};
obj["test"]           // 2
obj.test              // 2
obj["test-data"];     // 1
obj.test-data         //ReferenceError: data is not defined
      //^ is a <MINUS> character, parsed as (obj.test - data)

关于php - 访问 JSON 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983572/

相关文章:

php - foreach 重复的复选框字段

php - API 调用应该是 GET 还是 POST?

javascript - 如何使用 php 将 javascript/jquery 下拉值保存到 mysql

php - MySQL 数据库中的文本采用 ISO-8859-1(拉丁文)编码,但应为 UTF-8

php - MySQL 查询在更新后以不同的顺序返回列

javascript - 如何在不再次渲染的情况下将一个内容 div 移动到另一个内容 div?

javascript - IE9 Javascript undefined variable

javascript - Javascript 函数中的数组作用域在内部 AJAX 循环之外为空

javascript - 如何使用 Ajax 填充外部加载的 div (jQuery)

javascript - 使用 javascript 从 JSON 动态检索信息