7

我有一个动态 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
}

但是我不相信它会很好用,你们能帮帮我吗?

提前致谢。

4

1 回答 1

4

检查typeof key === 'array'不正确,因为 for 数组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

于 2013-05-06T19:48:44.013 回答