Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用变量访问JSON属性(字符串)_Javascript_Json - Fatal编程技术网

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

Javascript 使用变量访问JSON属性(字符串),javascript,json,Javascript,Json,我试图使用通过函数传递的变量访问JSON: function highlightCategory (category) { for (var i in data) { console.log(data[i].category) } } 显然,这不起作用,因为“category”是我用函数传递的内容,而不是属性的真实名称,但我一直在尝试不同的可能性,但都没有成功。 提前谢谢 data[i][category] 在JS中,obj.prop与obj['prop']同义 va

我试图使用通过函数传递的变量访问JSON:

function highlightCategory (category) {
   for (var i in data) {
      console.log(data[i].category)
   }
}
显然,这不起作用,因为“category”是我用函数传递的内容,而不是属性的真实名称,但我一直在尝试不同的可能性,但都没有成功。 提前谢谢

data[i][category]
在JS中,
obj.prop
obj['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

如果category是一个包含JSON属性键的字符串,那么它就像
console.log(data[category])一样简单。
如果显示JSON。。。“category”是数据的直接属性还是其中一个直接属性的子属性?注意:这不是JSON,而是Javascript对象。JSON是一种表示对象的文本格式。这是否回答了您的问题?布拉德的答案有效!谢谢我只是忘了去掉点(data[I].[category])。@chiquiestban,如果它有效,你应该通过点击下面的复选框来接受答案left@Austin:可能还为时过早,无法接受。;-)但是谢谢你的热情。