我正在研究一个接受JSON对象作为参数的函数。传入的对象的每个属性都是一个数组。我需要确定每个数组的长度。
我事先不知道的是:属性的名称,或者有多少属性。
如何确定每个阵列的长度?同样,我不能明确地引用任何属性/键,因为我不会提前知道它们的名字。如何将每个未知属性作为数组引用?
提前谢谢你, -RS
答案 0 :(得分:0)
使用JSON.parse
将JSON数据转换为JS对象,然后您可以使用Array的长度等属性。
var myObject = JSON.parse(myJSONtext, reviver);
JSON参考:http://www.json.org/js.html
答案 1 :(得分: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
检查,但始终使用此测试会更安全。