我正在使用Arboreal库将树结构发送到前端。但是,我遇到了TypeError: Converting circular structure to JSON]
的问题,这是树结构的预期。
我想维护对象,因此我可以在前端重用库。有没有办法在没有节点尝试解释它的情况下发送对象?
每个节点,树包含如下信息:
depth: 0,
parent: [circular],
data: node data,
id: id,
children: [child node]
答案 0 :(得分:0)
我会克隆树(实际上不是树)并删除parent
引用:
function cloneWithoutParent(n){
if (typeof n !== "object") return n;
var c = {};
for (var k in n) {
if (k!=="parent") c[k] = cloneWithoutParent(n[k]);
}
return c;
}
之后,您可以对树进行字符串化。当然,当您需要原始结构时,您可以执行相反的操作来恢复parent
属性。