我有一个动态的json对象,里面可以包含不同类型的属性和对象,可以有平面字符串甚至数组。 我制作了一个javascript代码将单个JSON结构转换为HTML表格,工作得很好,但是想要使它成为动态JSON,所以基本上我需要遍历JSON树的父母和孩子,看看我该如何创建这个HTML表格。
但是在尝试验证孩子是否有内部对象时我确实遇到了一些问题,如下所示:(我不想向JSON添加许多细节)
parent: {
child_1: {
attr1 : value1
},
child_2: {
[{ attribues and values in an array }]
}
}
我怎么能实现这个目标?我正在考虑使用像这样的“typeof”函数:
if (typeof key === 'array') {
// do something
}else{
// do another stuff
}
但我不相信它会运作良好,你们可以帮助我吗?
提前致谢。
答案 0 :(得分:2)
检查typeof key === 'array'
不正确,因为数组typeof
将返回"object"
。您可以尝试使用instanceof
代替:
if (key instanceof Array) {
// do something
} else {
// do another stuff
}
但如果您的JSON是在另一个框架中创建的,那么这将失败。
另一种选择是检查toString()
Object.prototype.toString.call(key).indexOf('Array') > 0
或检查
Array.isArray(key)
但并非所有浏览器都支持。
您可以在此处https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/typeof
了解typeof
的说明