将分隔树制表符转换为JSON



如何转换这样一个以制表符分隔的文本树:

a
a1
a3
a2

转换成如下的JSON格式树:

[
{
"name":"a",
"children":[
{
"name":"a1",
"children":[
{
"name":"a3",
"children":[]
}
]
},
{
"name":"a2"
"children":[]
}
]
}
]

在javascript中?我想你已经明白了,我想要一个选项卡t分离的树结构转换为JSON树结构。谢谢

您可以将数据拆分为行和单独的选项卡,以获取级别和名称。

要创建树,请使用一个已知标高的数组,并将每个新节点分配给该级别的数组和下一级别。

var data = 'anta1ntta3nta2',
tree = [];
levels = [tree];

data
.split('n')
.forEach(s => {
const [{ length: level }, name] = s.split(/([^t]+)/);
levels[level].push({ name, children: levels[level + 1] = [] });
});
console.log(tree);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新