I have a list of folders in my database that can contain list of folders and so on like the following:
In my service method to retrieve the JSON, I return a list of folders.
I want to recieve the following structure:
At the moment, this is the method that generates the list of folders:
 public List<FolderStructureDTO> GetFolderStructureDTOs()
    {
        var folders = GetFolders();
        foreach (var folder in folders)
        {
            var bookmarks = db.Bookmarks.OfType<Folder>().Where(x => x.ParentId == folder.Id).ToList();
            foreach (var item in bookmarks)
            {
                folder.FolderBookmarks.Add(item);
            }
        }
        List<FolderStructureDTO> folderDTOs = null;
        foreach (var folder in folders)
        {
            folderDTOs = folders.Select(x => new FolderStructureDTO() { Folder = folder.Name, Subfolders = folder.FolderBookmarks }).ToList();
        }
        return folderDTOs;
    }
public class FolderStructureDTO
{
    public string Folder { get; set; }
    public List<Bookmark> Subfolders { get; set; }
}
This is the output JSON that I receive:
{"FolderBookmarks":[{"FolderBookmarks":[],"Id":123,"Name":"NonFiction","ParentId":122},{"FolderBookmarks":[{"FolderBookmarks":[],"Id":125,"Name":"Romance","ParentId":124},{"FolderBookmarks":[],"Id":126,"Name":"Horror","ParentId":124}],"Id":124,"Name":"Fiction","ParentId":122}],"Id":122,"Name":"Books","ParentId":101}
To make it look more readable, here is the same JSON, but beautified using https://codebeautify.org/jsonviewer: 
{
"FolderBookmarks": [
    {
        "FolderBookmarks": [],
        "Id": 123,
        "Name": "NonFiction",
        "ParentId": 122
    },
    {
        "FolderBookmarks": [
            {
                "FolderBookmarks": [],
                "Id": 125,
                "Name": "Romance",
                "ParentId": 124
            },
            {
                "FolderBookmarks": [],
                "Id": 126,
                "Name": "Horror",
                "ParentId": 124
            }
        ],
        "Id": 124,
        "Name": "Fiction",
        "ParentId": 122
    }
],
"Id": 122,
"Name": "Books",
"ParentId": 101
}
Can anyone help me generate the desired JSON format? I've looked around and cannot find a solution.


