如何使用JavaScript获取JSON对象属性

5

我是一名JSON和JavaScript的初学者。我需要一种方法从一个对象列表中返回subAttributeOne本身,而不是其值。

以下是一个列表的例子,

var list = 
[
   {
   attribute1: "value",
   attribute2:[{subAttributeOne:"value",subAttributeTwo:"value"},{}]
   },
   //other objects
   {..}
]

我尝试了以下操作:
list[0].attribute2[1].subAttributeOne

它返回value,但我需要的结果是subAttributeOne


1
你已经知道你正在寻找字符串"subAttributeOne",那么在数组中还有什么需要查找的呢?你试图实现什么并不是很清楚。 - deceze
使用 Object.keys(list[0].attribute2[0]); - Niroshan Ranapathi
2个回答

5

有了这个:

Object.keys(list[0].attribute2[0])

你获得了。
['subAttributeOne', 'subAttributeTwo']

3
如果您想获取对象中的键,可以使用object.keys 来返回所有键,但是为了定义其位置,在您的情况下,可以像以下一样使用:
Object.keys(list[0].attribute2[1])[0]

但是在JavaScript中,对象中的属性顺序不是保证的,因此[0]并不像索引一样工作。

想要了解更多,请阅读:Does JavaScript Guarantee Object Property Order?

在这个链接中,你会找到ECMAScript第三版中关于对象的定义:

4.3.3 对象

对象是Object类型的成员。它是一个无序集合的属性,每个属性包含一个基本值、对象或函数。存储在对象属性中的函数被称为方法。


1
这仅在subAttributeTwo大于subAttributeOne时才有效。键的顺序是按字母顺序排列的。 - gianlucatursi
2
@t.gian18 顺序是任意的,即没有顺序。 - deceze
1
https://dev59.com/jW035IYBdhLWcg3wQtsg - Xotic750

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接