Допустим, у меня есть некоторые данные, как показано ниже:Строительство JSON из табличной иерархических данных
{
"Menu": {
"aaa": "aaa",
"bbb": {
"ccc": "ccc",
"ddd": "ddd"
},
"eee": "eee"
}
}
Я могу сохранить этот тип иерархических данных в базе данных в реляционной образом подобное:
http://i.stack.imgur.com/lmuq1.jpg
список
Пример:
List<MenuItem> menuItems = new List<MenuItem>();
menuItems.Add(new MenuItem() { SiteMenuId = 1, ParentId = null, MenuName = "Menu", Url = null, SiteId = 1 });
menuItems.Add(new MenuItem() { SiteMenuId = 2, ParentId = 1, MenuName = "aaa", Url = "aaa", SiteId = 1 });
menuItems.Add(new MenuItem() { SiteMenuId = 3, ParentId = 1, MenuName = "bbb", Url = null, SiteId = 1 });
menuItems.Add(new MenuItem() { SiteMenuId = 4, ParentId = 3, MenuName = "ccc", Url = "ccc", SiteId = 1 });
menuItems.Add(new MenuItem() { SiteMenuId = 5, ParentId = 3, MenuName = "ddd", Url = "ddd", SiteId = 1 });
menuItems.Add(new MenuItem() { SiteMenuId = 6, ParentId = 1, MenuName = "eee", Url = "eee", SiteId = 1 });
так что, когда я получаю реляционные данные из БД в список из MenuItem объектов, как я могу транслировать его обратно в json?
public partial class MenuItem
{
public int SiteMenuId { get; set; }
public int SiteId { get; set; }
public string MenuName { get; set; }
public string Url { get; set; }
public Nullable<int> ParentId { get; set; }
public int CreatedUser { get; set; }
public System.DateTime CreatedDate { get; set; }
public Nullable<int> ModifiedUser { get; set; }
public Nullable<System.DateTime> ModifiedDate { get; set; }
}
Должен ли я использовать словарь или ExpandoObject или что-то еще? Я хочу иметь тот же формат, что и в начале.
Посмотрите newtonsoft - http://www.newtonsoft.com/json и как сериализовать json. – Will
Спасибо, что я знаю о newtonsoft. Но я хочу, чтобы мой json был таким же, как и первый формат. Именно об этом я и спрашиваю. – anilca
Обычно я использую Automapper для преобразования между моделью, отображаемой через http и dto. – Will