Serialisieren eines Baums in ein Json-Objekt

Ich habe folgende Kurse:

TreeNode.cs

public class TreeNode : IEnumerable<TreeNode>
{
    public readonly Dictionary<string, TreeNode> _children = new Dictionary<string, TreeNode>();

    public readonly string Id;
    public TreeNode Parent { get; private set; }

    public TreeNode(string id)
    {
        this.Id = id;
    }

    public TreeNode GetChild(string id)
    {
        return this._childs[id];
    }

    public void Add(TreeNode item)
    {
        if (item.Parent != null)
        {
            item.Parent._childs.Remove(item.Id);
        }

        item.Parent = this;
        this._childs.Add(item.Id, item);
    }

    public IEnumerator<TreeNode> GetEnumerator()
    {
        return this._childs.Values.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }

    public int Count
    {
        get { return this._childs.Count; }
    }
}

FolderStructureNode.cs

public class FolderStructureNode : TreeNode
{
    //Some properties such as FolderName, RelativePath etc.
}

Also, wenn ich ein Objekt vom Typ habeFolderStructureNode Es handelt sich im Wesentlichen um eine Baumdatenstruktur, bei der jeder Knoten einen Ordner darstellt. Ich möchte dieses Objekt in ein JsonObject serialisieren. Ich habe beides ausprobiert - JavaScriptSerializer und NewtonSoft. In beiden Fällen erhalte ich eine Ausgabe als -

[
  [
    []
  ],
  [
    []
  ],
  []
]

Zum Zeitpunkt der Serialisierung sieht der Baum ungefähr so ​​aus:

Wie serialisiere ich es, um das richtige JSON-Objekt zu erhalten? Muss ich den Baum durchqueren und den Json selbst erstellen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage