基于json对象树的html表
我有一个动态的json对象,可以包含不同类型的属性和对象,可以有平面字符串或甚至数组。 我做了一个JavaScript代码来转换单个JSON结构到一个HTML表,工作很好,但ID喜欢使它成为一个动态的JSON,所以基本上我需要遍历JSON树的父母和孩子,看看我如何创建这个HTML表格。基于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
}
但我不相信它会工作得很好,你们能帮助我吗?
在此先感谢。
检查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)
,但它不被所有浏览器支持。
的typeof
说明你可以在这里看到https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/typeof
请参阅[这里](http://stackoverflow.com/questions/4775722/javascript-check-if-object-is-array)为什么'instanceof'不总是工作 – 2013-05-06 19:53:25
使用indexOf(“Array”)的选择不正确,如果对象是类型数组,例如Int32Array – Xotic750 2013-05-06 20:05:37
@ Xotic750 OP提到原始对象是JSON,根据JSON规范http://www.json.org/可能只包含普通数组(不包含类型) – Vadim 2013-05-06 20:09:30
,我认为它应该工作正常。使用递归函数来建立表格。 – Barmar 2013-05-06 19:40:27
@Barmar你能帮我举个例子吗?我也在想这个,因为我发现每一个'数组',我会创建一个“可链接”行来添加另一个弹出所有的数据:( – msqar 2013-05-06 19:41:09
尝试自己写,然后有人会帮你修复它。没有一个方便的例子 – Barmar 2013-05-06 19:43:21