在Node.js中发送树结构

时间:2014-01-23 14:34:25

标签: javascript node.js tree

我正在使用Arboreal库将树结构发送到前端。但是,我遇到了TypeError: Converting circular structure to JSON]的问题,这是树结构的预期。

我想维护对象,因此我可以在前端重用库。有没有办法在没有节点尝试解释它的情况下发送对象?

每个节点,树包含如下信息:

depth: 0,
parent: [circular],
data: node data,
id: id,
children: [child node]

1 个答案:

答案 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属性。