javascript - 使用变量访问 JSON 属性(字符串)

标签 javascript json

我正在尝试使用传递给函数的变量来访问 JSON:

function highlightCategory (category) {
   for (var i in data) {
      console.log(data[i].category)
   }
}

显然,这行不通,因为“类别”是我随函数传递的内容,而不是属性的真实名称,但我一直在尝试不同的可能性,但均未成功。 提前致谢!

最佳答案

data[i][category]

在 JS 中,obj.propobj['prop'] 同义。

var foo = {
  bar: 'baz'
};
// foo.bar == foo['bar'] == 'baz'

此外,您正在处理一个 javascript 对象,而不是 JSON(尽管它可能起源于那里)

更新 对于遇到此问题并使用 ES6 的用户,您现在可以在赋值期间使用变量:

const propName = 'bar';
const foo = {
  [propName]: 'baz',
}
// foo.bar == foo[propName] == 'baz'

作为引用,这被认为是 ES6 规范的对象初始化器部分下的 ComputedPropertyName

关于javascript - 使用变量访问 JSON 属性(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300236/

相关文章:

javascript - 如何使用 REST API 将表单数据从 ionic 应用程序发送到 parse.com MBaaS

javascript - 通过 JQuery 使输入[数字]字段依赖于另一个输入[数字]字段

javascript - 函数后未找到/未定义类名

python - 如何将 JSON 数据从 Django View 传递到 Vue.js 实例方法

python - 使用 pandas python 将嵌套的 JSON 解析为多个数据框

javascript - Angular 4 - 所有路线都不起作用

javascript - 如何使用 Bluebird promise ( Mongoose )进行 findOneAndUpdate

javascript - 将 json 数据转为 HTML

java - 如何在反序列化对象中保留字段的默认值?

javascript - 如何将嵌套的 JSON 数据结构缩减为 map JavaScript