当前位置: 首页 > 面试题库 >

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

东郭存
2023-03-14
问题内容

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

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

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


问题答案:
data[i][category]

在JS中,obj.prop是的同义词obj['prop']

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

另外,您正在处理的是JavaScript对象,而不是JSON(尽管它可能 起源于 JSON )

*对于遇到这种情况并使用ES6的用户进行 *更新 ,现在可以在分配过程中使用变量:

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

作为参考,这被视为ComputedPropertyNameES6规范的“对象初始化”部分。



 类似资料:
  • 问题内容: 我有一个像这样的JSON数组: 我想通过将ID,列名和新值传递给函数来更新它: 我的问题是,如何更新值?我知道我可以做以下事情: 但是出于我的原因,列名是作为字符串传递的。 问题答案: 在JavaScript中,您可以使用文字符号访问对象属性: 或使用带括号的表示法,使用字符串作为属性名称: 这两个语句的作用 完全相同 ,但是在第二个语句的情况下,由于括号中的内容是字符串,因此它可以是

  • 我正在尝试使用动态名称访问对象的属性。这可能吗?

  • 问题内容: 我正在尝试使用动态名称访问对象的属性。这可能吗? 问题答案: 有两种方法可以访问对象的属性: 点表示法: 括号符号: 方括号之间的值可以是任何表达式。因此,如果属性名称存储在变量中,则必须使用方括号表示法:

  • 问题内容: 如果我有一个如下所示的javascript对象 我有一个既传递对象又传递属性的函数,像这样 身体会是什么样? 问题答案: 您不需要它的功能-只需使用括号符号即可: 这等于点表示法,除了在使用方括号表示法时也可能来自变量,函数返回值等的事实。 如果需要它的功能,则为: 为了回答下面与原始问题没有直接关系的一些注释,可以通过多个括号引用嵌套对象。如果您有这样的嵌套对象: 您可以访问财产的,

  • 问题内容: 我有一个像下面这样的课程: 我想为源变量传递一个字符串,并访问同名的类成员。 我已经尝试过仅对函数有效(据我所知)以及具有extend和using ,但这也不起作用。做这个的最好方式是什么? 问题答案: 如果命名self的ANY属性(包括您的示例中的),将可以完美地工作。

  • 问题内容: 我将json字符串存储到mysql中的文本字段中。插入后,我想更新我的json字符串,并使用jackson json将mysql行ID添加到其中。 我有一个Json格式的Java字符串 我希望添加另一个K / V,而无需编写代码行。 终于有了这个: 我可以将String转换为JsonNode: 想要做这样的事情 然后在mysql中使用新的json字符串在我的文本字段中更新 我做不到 我