基于JSON对象树的HTML表格

15 浏览
0 Comments

基于JSON对象树的HTML表格

这个问题已经有答案了:

如何检查一个对象是否为数组?[重复]

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

但我不认为这会很好用,你们能帮帮我吗?

提前谢谢。

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用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

0