• 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)
  • 相关阅读:
    信号之可重入函数
    信号的发送
    守护进程详解以及start-stop-daemon命令
    信号基本概念
    常用进程调度算法(转)
    malloc/free与new/delete的区别(转)
    IP地址转换
    exec系列函数详解
    fork函数拓展
    leetcode第156场周赛5205
  • 原文地址:https://www.cnblogs.com/jdxx/p/JSON_Utility.html
Copyright © 2020-2023  润新知