基于json对象树的HTML表

html table based upon json object tree

本文关键字:HTML json 对象 基于      更新时间:2023-09-26

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

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

检查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