有一串 json 返回值 我需要序列化后 入库 string groupmenu = "[{\"id\":1,\"typename\":\"项目名请双击修改1\",\"pid\":1,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":2,\"typename\":\"项目名请双击修改2\",\"pid\":2,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":3,\"typename\":\"项目名请双击修改3\",\"pid\":3,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"children\":[{\"id\":3001,\"typename\":\" 生活指数--感冒指数\",\"pid\":3001,\"cd\":\"28        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"},{\"id\":3002,\"typename\":\" 生活指数--洗车指数\",\"pid\":3002,\"cd\":\"29        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"},{\"id\":3003,\"typename\":\" 生活指数--空气质量\",\"pid\":3003,\"cd\":\"30        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"}],\"state\":\"closed\"},{\"id\":4,\"typename\":\"项目名请双击修改4\",\"pid\":4,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":5,\"typename\":\"项目名请双击修改5\",\"pid\":5,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"closed\",\"children\":[{\"id\":5001,\"pid\":5001,\"typename\":\" 生活指数--紫外线指数\",\"cd\":\"26\",\"_parentId\":5,\"state\":\"open\"},{\"id\":5002,\"pid\":5002,\"typename\":\" 生活指数--感冒指数\",\"cd\":\"28\",\"_parentId\":5,\"state\":\"open\"},{\"id\":5003,\"pid\":5003,\"typename\":\" 生活指数--洗车指数\",\"cd\":\"29\",\"_parentId\":5,\"state\":\"open\"}]}]";
 public class JSONObject
    {
        public int id { get; set; }
        public string typename { get; set; }
        public string pid { get; set; }
        public string cd { get; set; }
        public string urls { get; set; }
        public string _parentId { get; set; }
        public string Template { get; set; }
        public List<Children> Child { get; set; }        public class Children
        {
            #region 属性
            public int id { get; set; }
            public string typename { get; set; }
            public string pid { get; set; }
            public string cd { get; set; }
            public string urls { get; set; }
            public string _parentId { get; set; }
            public string Template { get; set; }            #endregion
        }    }
完成后形如navid id typename pid cd urls _parentId sid Template
622 1 项目名请双击修改1 1 -1         0 1
623 2 项目名请双击修改2 2 -1         0 1
624 3 项目名请双击修改3 3 -1         0 1
625 3001  生活指数--感冒指数 3001 28         3 1
626 3002  生活指数--洗车指数 3002 29         3 1
627 3003  生活指数--空气质量 3003 30         3 1
628 4 项目名请双击修改4 4 -1         0 1
629 5 项目名请双击修改5 5 -1         0 1 请问改如何写~~

解决方案 »

  1.   

    http://www.cnblogs.com/dlonghow/archive/2009/02/19/1393702.html
      

  2.   

    为啥 我写出来是空的 [DataContract]
        public class JSONObject
        {
            [DataMember]
           public int id { get; set; }
            [DataMember]
            public string typename { get; set; }
            [DataMember]
            public string pid { get; set; }
            [DataMember]
            public string cd { get; set; }
            [DataMember]
            public string urls { get; set; }
            [DataMember]
            public string _parentId { get; set; }
            [DataMember]
            public string Template { get; set; }
            [DataMember]
            public List<Children> children { get; set; }        public class Children
            {
                #region 属性
                public int id { get; set; }
                public string typename { get; set; }
                public string pid { get; set; }
                public string cd { get; set; }
                public string urls { get; set; }
                public string _parentId { get; set; }
                public string Template { get; set; }            #endregion
            }    }
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JSONObject));
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(groupmenu)))
                {
                    JSONObject obj = (JSONObject)ser.ReadObject(ms);
                    //baidu 就是反序列化后的结果
                    ms.Close();
                }
      

  3.   


            List<JSONObject> list = new List<JSONObject>();
            string groupmenu = "[{\"id\":1,\"typename\":\"项目名请双击修改1\",\"pid\":1,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":2,\"typename\":\"项目名请双击修改2\",\"pid\":2,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":3,\"typename\":\"项目名请双击修改3\",\"pid\":3,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"children\":[{\"id\":3001,\"typename\":\" 生活指数--感冒指数\",\"pid\":3001,\"cd\":\"28        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"},{\"id\":3002,\"typename\":\" 生活指数--洗车指数\",\"pid\":3002,\"cd\":\"29        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"},{\"id\":3003,\"typename\":\" 生活指数--空气质量\",\"pid\":3003,\"cd\":\"30        \",\"urls\":\"\",\"_parentId\":3,\"Template\":\"\",\"state\":\"open\"}],\"state\":\"closed\"},{\"id\":4,\"typename\":\"项目名请双击修改4\",\"pid\":4,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"open\"},{\"id\":5,\"typename\":\"项目名请双击修改5\",\"pid\":5,\"cd\":\"-1        \",\"urls\":\"\",\"_parentId\":0,\"Template\":\"\",\"state\":\"closed\",\"children\":[{\"id\":5001,\"pid\":5001,\"typename\":\" 生活指数--紫外线指数\",\"cd\":\"26\",\"_parentId\":5,\"state\":\"open\"},{\"id\":5002,\"pid\":5002,\"typename\":\" 生活指数--感冒指数\",\"cd\":\"28\",\"_parentId\":5,\"state\":\"open\"},{\"id\":5003,\"pid\":5003,\"typename\":\" 生活指数--洗车指数\",\"cd\":\"29\",\"_parentId\":5,\"state\":\"open\"}]}]";
            DataContractJsonSerializer json = new DataContractJsonSerializer(list.GetType());
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(groupmenu));
            list = (List<JSONObject>)json.ReadObject(ms);
            foreach (JSONObject o in list)
            {
                Response.Write(o.id + "==" + o.typename + "==" + o.pid + "==" + o.urls + "==" + o._parentId + "==" + o.Template + "==" + o.state + "<br/>");
                if (o.Child != null)
                    foreach (JSONObject.Children c in o.Child)
                        Response.Write("   " + c.id + "==" + c.typename + "==" + c.pid + "==" + c.urls + "==" + c._parentId + "==" + c.Template + "==" + c.state + "<br/>");
            }[DataContract]
    public class JSONObject
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public string typename { get; set; }
        [DataMember]
        public string pid { get; set; }
        [DataMember]
        public string cd { get; set; }
        [DataMember]
        public string urls { get; set; }
        [DataMember]
        public string _parentId { get; set; }
        [DataMember]
        public string Template { get; set; }
        [DataMember]
        public string state { get; set; }
        [DataMember(Name = "children")]
        public List<Children> Child { get; set; }
        [DataContract]
        public class Children
        {
            #region 属性
            [DataMember]
            public int id { get; set; }
            [DataMember]
            public string typename { get; set; }
            [DataMember]
            public string pid { get; set; }
            [DataMember]
            public string cd { get; set; }
            [DataMember]
            public string urls { get; set; }
            [DataMember]
            public string _parentId { get; set; }
            [DataMember]
            public string Template { get; set; }
            [DataMember]
            public string state { get; set; }        #endregion
        }
    }
    /*
    1==项目名请双击修改1==1====0====open
    2==项目名请双击修改2==2====0====open
    3==项目名请双击修改3==3====0====closed
    3001== 生活指数--感冒指数==3001====3====open
    3002== 生活指数--洗车指数==3002====3====open
    3003== 生活指数--空气质量==3003====3====open
    4==项目名请双击修改4==4====0====open
    5==项目名请双击修改5==5====0====closed
    5001== 生活指数--紫外线指数==5001====5====open
    5002== 生活指数--感冒指数==5002====5====open
    5003== 生活指数--洗车指数==5003====5====open*/