Javascript 从JSON对象动态读取数组值

Javascript 从JSON对象动态读取数组值,javascript,arrays,Javascript,Arrays,我正在处理一个函数,该函数接受JSON对象作为参数。传入的对象的每个属性都将是一个数组。我需要确定每个数组的长度 我事先不知道的是:房产的名称,或者有多少房产 如何确定每个数组的长度?同样,我不能明确引用任何属性/键,因为我无法提前知道它们的名称。如何将每个未知属性引用为数组 提前谢谢大家,, -RS使用JSON.parse将JSON数据转换为JS对象,然后可以使用数组的length等属性 var myObject = JSON.parse(myJSONtext, reviver); JSON

我正在处理一个函数,该函数接受JSON对象作为参数。传入的对象的每个属性都将是一个数组。我需要确定每个数组的长度

我事先不知道的是:房产的名称,或者有多少房产

如何确定每个数组的长度?同样,我不能明确引用任何属性/键,因为我无法提前知道它们的名称。如何将每个未知属性引用为数组

提前谢谢大家,,
-RS

使用
JSON.parse
将JSON数据转换为JS对象,然后可以使用数组的length等属性

var myObject = JSON.parse(myJSONtext, reviver);

JSON引用:

您可以使用
for…in
循环在对象上迭代以访问每个属性

for (var key in myObject) {
  // Check to make sure the property is not part of the `Object` prototype (eg. toString)
  if (myObject.hasOwnProperty(key)) {
    console.log(key, myObject[key].length);
  }
}
在上面的示例中,我们迭代对象
myObject
的属性,并注销它们的长度值(假设它们都是数组)

如果“JSON对象”的意思是它是一个JSON字符串,那么可以首先使用
myObject=JSON.parse(myObject)
(适用于现代浏览器)或
myObject=eval(“+myOjbect+”)
将myObject解析为真正的对象,这被认为是不安全的(但适用于所有浏览器)。解析之后,可以使用上述技术来细化数组长度


注意:由于您更新了post以指定对象为JSON,您可能不需要检查
hasOwnProperty
,但始终使用此测试更安全。

可能的重复项可以从数组的
length
属性获取数组的长度。操作杰克:谢谢。这是我使用的方法,但现在我看到了我遗漏的东西。我将使用您的变量名来说明:我试图使用myObject而不是myObject[key]引用for…in循环中的数组。因此,myObject.length只返回包含键名称的字符串的长度。非常感谢。啊。。。是的,您在ES6:)中假设了新的
for…of
循环的功能。不幸的是,您需要等待一段时间才能使用此功能。更正:我试图使用key而不是myObject[key]引用for…in循环中的数组。因此,key.length只返回包含密钥名称的字符串的长度。谢谢,但我不是问如何解析。