使用json在html中构建树结构

时间:2018-01-11 18:58:15

标签: javascript jquery json

我试图在html中构建动态树结构。我以嵌套的json格式从数据库中获取结果。

JSON DATA

我无法正确读取json数据。它的格式为

[ { keys_1 : { keys_2 : [ array ] } } ]

在树形结构中,key_1是父类, key_2是childern,数组项目是大型的。

如何访问此json数据,以便我可以读取父键,相关子项以及后续子项。

我试过这种方式,但不能这样做:

for (var i = 0; i < response.length; i++) {
    var level_1 = (JSON.stringify((Object.keys(response[i]))[0])).replace(/"/g, "");
    for (var j = 0; j < response[i].length; j++) {
        console.log("yes");
    }
}

即便如此,我也无法弄清楚如何使用不同的键值输入嵌套的json。 - 所有按键都不同。 - 钥匙可能/可能没有孩子,也与孩子一样。

如何以这种方式读取json数据,以便首先应该读取一个父级子孙,然后是孙子级?

1 个答案:

答案 0 :(得分:2)

您可以使用嵌套方法,因为您具有以下结构:

  • array:iterate,
  • object:获取迭代的键,
  • object:获取迭代的键,
  • array:iterate。

var data = [{ 1000: { 110: ["1000110008", "1000110005", "1000110004", "1000110003", "1000110001", "1000110009"], 100: ["1000100001", "1000100002", "1000100019", "1000100018", "1000100017", "1000100015", "1000100014", "1000100013", "1000100003", "1000100004", "1000100006", "1000100007", "1000100008", "1000100009", "1000100011"] } }, { 1020: { 102: ["1020102001"] } }];

data.forEach(function (o) {
    Object.keys(o).forEach(function (k) {
        Object.keys(o[k]).forEach(function (l) {
            o[k][l].forEach(function (v) {
                console.log(k, l, v);
            });
        });
    });
});
.as-console-wrapper { max-height: 100% !important; top: 0; }