【发布时间】:2015-11-14 06:57:01
【问题描述】:
假设我有一些数据,如下所示:
{
"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 });
所以,当我从 db 获取关系数据作为 MenuItem 对象的 List 时,如何将其翻译回 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; }
}
我必须使用 Dictionary 或 ExpandoObject 吗?我希望拥有与开始时完全相同的格式。
【问题讨论】:
-
查找 newtonsoft - newtonsoft.com/json 以及如何序列化为 json。
-
谢谢 我知道 newtonsoft。但我希望我的 json 与第一种格式相同。这实际上是我要问的。
-
我通常使用 Automapper 在通过 http 和 dto 公开的模型之间进行转换。
-
@BrianRogers 是的,但我不想在我的 json 格式中有 children:[] 属性。我需要具有与我的问题中解释的完全相同的格式。
标签: c# json serialization dynamic expandoobject