保留对 serde_json 树节点的引用

问题描述 投票:0回答:0

我有一个 Rust 问题,想要一些建议:我使用 serde_json 在循环中动态创建一个 json 结构。每次迭代都会创建一个 Value:Object 节点并将其作为同级节点添加到前一个节点。但是有时(在运行时决定)我需要将当前运行的数据作为子节点添加到上一次迭代中创建的节点。

我尝试保留对上一次迭代节点的引用,因为我需要添加子节点,所以它需要是可变的。这与我的 json 结构中对节点的引用冲突。

我试图将节点包装到 Rc RefCell 中,但这似乎将问题从编译时转移到了运行时。我将如何解决这个问题?任何提示表示赞赏!

这是预期输出的示例:

{
  "children": [
    {
      "name": "name1"
    },
    {
      "name": "name2",
      "children": [
        {
          "name": "name3"
        }
      ]
    },
    {
      "name": "name4"
    }
  ]
}

应该从以下输入生成:

- name1
- name2 
    - name3
- name4
rust borrow-checker
© www.soinside.com 2019 - 2024. All rights reserved.