仅删除父节点而不删除json对象中的子节点

时间:2011-03-17 16:20:47

标签: javascript json

{"0":
     {"id":"1",
      "Name":"A1",
      "parent_id":"0"},
 "1":
    {"id":"2",
     "Name":"A2",
     "parent_id":"0",
     "0":
         {"id":"3",
          "Name":"A3",
          "parent_id":"2",
          "0": 
              {"id":"4",
               "Name":"A4",
               "parent_id":"3"}}}}

这是从数据库表填充的。我想只删除节点ID 2(A2)。 Id 3的父ID应该自动成为id 1.这是A2的直接孩子与其子女一起成为其父母的孩子。因为我正在使用带有QML的js,所以我无法使用splice或remove。有什么建议?我现在能够通过找到必须删除的节点并将其分配给null来删除整个节点及其子节点(a2,a3,a4)。我很难删除所选节点而不是其子节点

3 个答案:

答案 0 :(得分:2)

jsonObject['1'] = jsonObject['1']['0'];

这个 应该减少A2的引用计数并将其删除,但增加A3的引用计数,保存A3及其子代。

答案 1 :(得分:1)

你不能简单地删除。您需要在删除之前复制要保留的内容。

也许你真正的问题是数据本身的结构。最有可能的是,您希望json结构是平面的,然后使用函数根据需要重新创建树。

答案 2 :(得分:0)

我必须做类似的事情,不幸的是,我发现这样做的唯一方法是手动重建JSON结构。 :(