当前位置:编程学习 > C#/ASP.NET >>

如何将JSON转换成实体类集合?

例如

{
   peoples:
   {
      people:
      [
        {'id':'001','name':'张三'},
        {'id':'002','name':'李四'},
        {'id':'003','name':'王五'}
      ]
   }
}


如何将诸如此类的JSON转换成实体类集合 List<People>? --------------------编程问答-------------------- public static List<T> JSONStringToList<T>(this string JsonStr)
  {   
  JavaScriptSerializer Serializer = new JavaScriptSerializer();
  List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
  return objs;
  }  

public static T Deserialize<T>(string json)
  {
  T obj = Activator.CreateInstance<T>();
  using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
  {
  System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
  return (T)serializer.ReadObject(ms);
  }
  }
注意Serializable,  --------------------编程问答-------------------- 这个怎么用啊? --------------------编程问答-------------------- 序列化和反序列化~~使用见GOOGLE --------------------编程问答--------------------

        /// <summary>
        ///  Get An Object By Deserialize From Json String
        /// </summary>
        /// <typeparam name="T">Gneric Type</typeparam>
        /// <param name="jsonString">Json String</param>
        /// <returns>An Assigned Type Object  </returns>
        public static T DeserializeFromJson<T>(string jsonString) where T : class
        {
            DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                T obj = (T)ds.ReadObject(ms);
                return obj;
            }
        }

用法:
string JsonString=“....”
List<T> obj = JsonUtility.DeserializeFromJson<List<T>>(JsonString);//注意T是可序列化类型 --------------------编程问答-------------------- 一般情况,先转成实体类,再自己加工成集合实体类更加符合常理
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,