c#中JSON与Class的转换

c#中JSON与Class的转换,包括序列化的库

 1     public class SerializableUtility
 2     {
 3         public static MemoryStream Serialize(object _obj)
 4         {
 5             BinaryFormatter formater = new BinaryFormatter();
 6             MemoryStream ms = new MemoryStream();
 7             formater.Serialize(ms, _obj);
 8 
 9             return ms;
10         }
11 
12         public static T DeSerialize<T>(byte[] _byte)
13         {
14             T t = default(T);
15 
16             BinaryFormatter formater = new BinaryFormatter();
17             MemoryStream ms = new MemoryStream(_byte);
18             t = (T)formater.Deserialize(ms);
19 
20             return t;
21         }
22     }
 1     public class JSONUtility
 2     {
 3         public static string Serialize<T>(T t)
 4         {
 5             if (t == null) return string.Empty;
 6             JavaScriptSerializer Serializer = new JavaScriptSerializer();
 7             return Serializer.Serialize(t);
 8         }
 9 
10         public static List<T> DeSerializeToList<T>(string JsonStr)
11         {
12             List<T> objs = new List<T>();
13             try
14             {
15                 if (!string.IsNullOrEmpty(JsonStr))
16                 {
17                     JavaScriptSerializer Serializer = new JavaScriptSerializer();
18                     objs = Serializer.Deserialize<List<T>>(JsonStr);
19                 }
20             }
21             catch (System.Exception ex)
22             {
23                 objs = null;
24             }
25             return objs;
26         }
27 
28         public static T DeSerialize<T>(string json)
29         {
30             T obj = Activator.CreateInstance<T>();
31             using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
32             {
33                 System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
34                 return (T)serializer.ReadObject(ms);
35             }
36         }
37 
38     }

使用:

1     [Serializable]
2     public class Permission
3     {
4         public int ModuleID;
5         public string ModulePermission;
6     }
1 string JsonPermisstion="[{\"ModuleID\":110,\"ModulePermission\":\"read\"},{\"ModuleID\":120,\"ModulePermission\":\"read\"},{\"ModuleID\":210,\"ModulePermission\":\"denied\"},{\"ModuleID\":220,\"ModulePermission\":\"denied\"}]";
2 
3 List<Permission> PermissionList = JSONUtility.DeSerializeToList<Permission>(JsonPermisstion);
string PermissionStr=JSONUtility.Serialize<List<Permission>>(PermissionList)

 

posted @ 2013-01-27 16:28  jdxx  阅读(1017)  评论(0编辑  收藏  举报