利用Newtonsoft.Json序列化成多层json解决方法

利用Newtonsoft.Json序列化成多层json
本帖最后由 sk1078 于 2014-05-04 15:53:40 编辑
1.数据库中有以下数据
利用Newtonsoft.Json序列化成多层json解决方法
2.怎么用Newtonsoft.Json将查询结果序列化成以下形式
[
    {
        "Menu_id":1001,
        "Menu_value":"学校管理类",
        "Menu_link":"",
        "Menu_target":"",
        "Menu_pathid":10,
        "a":{
            "url":"/XXGLL/Index",
            "state":"closed"
        }
    },
    {
        "Menu_id":1002,
        "Menu_value":"学生管理类",
        "Menu_link":"",
        "Menu_target":"",
        "Menu_pathid":10,
        "a":{
            "url":"/XSGLL/Index",
            "state":"closed"
        }
    },
    {
        "Menu_id":1003,
        "Menu_value":"教学管理类",
        "Menu_link":"",
        "Menu_target":"",
        "Menu_pathid":10,
        "a":{
            "url":"/JXGLL/Index",
            "state":"closed"
        }
    },
    {
        "Menu_id":1004,
        "Menu_value":"教职工管理类",
        "Menu_link":"",
        "Menu_target":"",
        "Menu_pathid":10,
        "a":{
            "url":"/JZGGLL/Index",
            "state":"closed"
        }
    }
]

------解决方案--------------------
实体对象,到序列化的转换.
------解决方案--------------------
主要代码
在model层
    public class MenuNav
    {
        public int Menu_id { get; set; }
        public string Menu_value { get; set; }
        public string Menu_link { get; set; }
        public string Menu_target { get; set; }
        public int Menu_pathid { get; set; }
        public att a { get; set; }
    }
    public class att
    {
        public string url { get; set; }
    }

在数据访问层
 public IEnumerable<Model.MenuNav> GetMenuNav()
        {
            List<Model.MenuNav> list = new List<Model.MenuNav>();
            using (DataSet ds =DBUtility.SqlHelper.ExecuteDataset(数据库链接, CommandType执行类型, sql语句))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    Model.MenuNav menunav = new Model.MenuNav();
                    Model.att a = new Model.att();
                    menunav.Menu_id = (int)dr["Menu_id"];
                    menunav.Menu_link = dr["Menu_link"].ToString();
                    menunav.Menu_pathid = (int)dr["Menu_pathid"];