在 JavaScript 中,可以使用递归的方式将一个 JSON 数据组装成树形数据。
以下是一个示例代码:
function convertToTree(data) {const tree = [];for (let i = 0; i < data.length; i++) {const node = data[i];const parentId = node.parentId;if (parentId === null || parentId === undefined) {tree.push(node);continue;}for (let j = 0; j < data.length; j++) {const parentNode = data[j];if (parentNode.id === parentId) {if (!parentNode.children) {parentNode.children = [];}parentNode.children.push(node);break;}}}return tree;
}// 示例数据
const jsonData = [{ id: 1, name: 'Node 1', parentId: null },{ id: 2, name: 'Node 2', parentId: 1 },{ id: 3, name: 'Node 3', parentId: 1 },{ id: 4, name: 'Node 4', parentId: 2 },{ id: 5, name: 'Node 5', parentId: 2 },{ id: 6, name: 'Node 6', parentId: 3 },
];const treeData = convertToTree(jsonData);
console.log(treeData);
以上代码将会输出以下结果:
[{ id: 1, name: 'Node 1', children: [{ id: 2, name: 'Node 2', children: [{ id: 4, name: 'Node 4' },{ id: 5, name: 'Node 5' }] },{ id: 3, name: 'Node 3', children: [{ id: 6, name: 'Node 6' }] }] }
]
这样,你就可以将一个 JSON 数据组装成树形数据了。