大神们请问一下:数据库字段为:id 编号,name 名称,parentId 父编号
如何转换为List中,有datagrid中所需的json数据
 如:[{"id","1","name":"父类别1","childern":[{"id","2","name":"字类别1"}]}
,{"id","3","name":"父类别2","childern":[{"id","4","name":"字类别2"}]}
]

谢谢数据库JSONdatagrid

解决方案 »

  1.   


        [DataContract] 
        public class t_experience
        {
            [DataMember(Order = 1)]
            public int id { get; set; }
            [DataMember(Order = 2)]
            public string name { get; set; }
            [DataMember(Order=3)]
             public  List<Cchild> childern{get;set;}
        }
        [DataContract]   
        public class Cchild
        {
              [DataMember(Order=1)]
              public int id { get; set; }
              [DataMember(Order=2)]
              public string name { get; set; }
             
        }
        public static class JSON
        {
            //// 反序列化
            //public static T parse<T>(string jsonString)
            //{
            //    using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            //    {
            //        return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            //    }
            //}
            //序列化
            public static string stringify(object jsonObject)
            {
                using (var ms = new MemoryStream())
                {
                    new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                List<Cchild> clid = new List<Cchild>() { new Cchild() { id= 1, name= "cname1" }, new Cchild() { id=2,  name="cname2" } };
                
                t_experience p1 = new t_experience() { id = 1, name = "父类1", childern = clid };
                t_experience p2 = new t_experience() { id = 2, name = "父类2" };
                // 序列化            
                var jsonString = JSON.stringify(new t_experience[] { p1, p2 });
                Console.WriteLine(jsonString);
                Console.ReadKey();        }
        }