-1

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

我不会提前知道的是:属性的名称,或者有多少属性。

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

提前谢谢你,-RS

4

2 回答 2

0

用于JSON.parse将 JSON 数据转换为 JS 对象,然后可以使用 Array 的长度等属性。

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

JSON 参考: http: //www.json.org/js.html

于 2012-06-22T16:36:01.200 回答
0

您可以使用循环遍历对象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 解析为真正的对象。解析后,您可以使用上述技术来细化数组长度。

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

于 2012-06-22T16:55:43.333 回答