麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C#操作json類型數(shù)據(jù)

2019-11-14 16:15:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

將對(duì)象序列化為 javaScript 對(duì)象表示法 (JSON),并將 JSON 數(shù)據(jù)反序列化為對(duì)象。 此類不能繼承。

//  msdn 例子:

 

[csharp] view plaincopy
  1. namespace SL_DataContractJsonSerializer  
  2. {  
  3.     public partial class Page : UserControl  
  4.     {  
  5.         public Page()  
  6.         {  
  7.             InitializeComponent();  
  8.         }  
  9.   
  10.         //This uses an event handler, not SL data binding  
  11.         void OnClick(object sender, EventArgs args)  
  12.         {  
  13.             txtOutput1.Text = "Create a User object and serialize it.";  
  14.             string json = WriteFromObject();  
  15.             txtOutput2.Text = json.ToString(); // Displays: {"Age":42,"Name":"Bob"}  
  16.   
  17.             txtOutput3.Text = "Deserialize the data to a User object.";  
  18.             string jsonString = "{'Name':'Bill', 'Age':53}";  
  19.             User deserializedUser = ReadToObject(jsonString);  
  20.             txtOutput4.Text = deserializedUser.Name; // Displays: Bill  
  21.             txtOutput5.Text = deserializedUser.Age.ToString(); // Displays: 53  
  22.         }  
  23.         // Create a User object and serialize it to a JSON stream.  
  24.         public static string WriteFromObject()  
  25.         {  
  26.             //Create User object.  
  27.             User user = new User("Bob", 42);  
  28.   
  29.             //Create a stream to serialize the object to.  
  30.             MemoryStream ms = new MemoryStream();  
  31.   
  32.             // Serializer the User object to the stream.  
  33.             DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(User));  
  34.             ser.WriteObject(ms, user);  
  35.             byte[] json = ms.ToArray();  
  36.             ms.Close();  
  37.             return Encoding.UTF8.GetString(json, 0, json.Length);  
  38.   
  39.         }  
  40.   
  41.         // Deserialize a JSON stream to a User object.  
  42.         public static User ReadToObject(string json)  
  43.         {  
  44.             User deserializedUser = new User();  
  45.             MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));  
  46.             DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());  
  47.             deserializedUser = ser.ReadObject(ms) as User;  
  48.             ms.Close();  
  49.             return deserializedUser;  
  50.         }  
  51.   
  52.     }  
  53.   
  54.     [DataContract]  
  55.     public class User  
  56.     {  
  57.         [DataMember]  
  58.         public string Name { get; set; }  
  59.   
  60.         [DataMember]  
  61.         public int Age { get; set; }  
  62.   
  63.         public User() { }  
  64.   
  65.         public User(string newName, int newAge)  
  66.         {  
  67.             Name = newName;  
  68.             Age = newAge;  
  69.         }  
  70.   
  71.     }  
  72.   
  73. }  


可以抽象成如下類:

 

 

[csharp] view plaincopy
  1. public class JsonHelper  
  2.     {  
  3.         /// <summary>  
  4.         /// 生成Json格式  
  5.         /// </summary>  
  6.         /// <typeparam name="T"></typeparam>  
  7.         /// <param name="obj"></param>  
  8.         /// <returns></returns>  
  9.         public static string GetJson<T>(T obj)  
  10.         {  
  11.             DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());  
  12.             using (MemoryStream stream = new MemoryStream())  
  13.             {  
  14.                 json.WriteObject(stream, obj);  
  15.                 string szJson = Encoding.UTF8.GetString(stream.ToArray());   
  16.                 return szJson;  
  17.             }  
  18.         }  
  19.         /// <summary>  
  20.         /// 獲取Json的Model  
  21.         /// </summary>  
  22.         /// <typeparam name="T"></typeparam>  
  23.         /// <param name="szJson"></param>  
  24.         /// <returns></returns>  
  25.         public static T ParseFromJson<T>(string szJson)  
  26.         {  
  27.             T obj = Activator.CreateInstance<T>();  
  28.             using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))  
  29.             {  
  30.                 DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());  
  31.                 return (T)serializer.ReadObject(ms);  
  32.             }  
  33.         }  
  34.     }  

 

[csharp] view plaincopy
  1. /// <summary>  
  2.         /// 反回JSON數(shù)據(jù)到前臺(tái)  
  3.         /// </summary>  
  4.         /// <param name="dt">數(shù)據(jù)表</param>  
  5.         /// <returns>JSON字符串</returns>  
  6.         public string DataTableToJson(DataTable dt)  
  7.         {  
  8.             StringBuilder JsonString = new StringBuilder();  
  9.             if (dt != null && dt.Rows.Count > 0)  
  10.             {  
  11.                 JsonString.Append("{ ");  
  12.                 JsonString.Append("/"TableInfo/":[ ");  
  13.                 for (int i = 0; i < dt.Rows.Count; i++)  
  14.                 {  
  15.                     JsonString.Append("{ ");  
  16.                     for (int j = 0; j < dt.Columns.Count; j++)  
  17.                     {  
  18.                         if (j < dt.Columns.Count - 1)  
  19.                         {  
  20.                             JsonString.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/",");  
  21.                         }  
  22.                         else if (j == dt.Columns.Count - 1)  
  23.                         {  
  24.                             JsonString.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/"");  
  25.                         }  
  26.                     }  
  27.                     if (i == dt.Rows.Count - 1)  
  28.                     {  
  29.                         JsonString.Append("} ");  
  30.                     }  
  31.                     else  
  32.                     {  
  33.                         JsonString.Append("}, ");  
  34.                     }  
  35.                 }  
  36.                 JsonString.Append("]}");  
  37.                 return JsonString.ToString();  
  38.             }  
  39.             else  
  40.             {  
  41.                 return null;  
  42.             }  
  43.         }  


//還有一種方式操作json類型數(shù)據(jù):

 

 

[csharp] view plaincopy
  1. public static class JsonTableHelper  
  2.     {  
  3.         /// <summary>   
  4.         /// 返回對(duì)象序列化   
  5.         /// </summary>   
  6.         /// <param name="obj">源對(duì)象</param>   
  7.         /// <returns>json數(shù)據(jù)</returns>   
  8.         public static string ToJson(this object obj)  
  9.         {  
  10.             JavascriptSerializer serialize = new JavaScriptSerializer();  
  11.             return serialize.Serialize(obj);  
  12.         }  
  13.   
  14.         /// <summary>   
  15.         /// 控制深度   
  16.         /// </summary>   
  17.         /// <param name="obj">源對(duì)象</param>   
  18.         /// <param name="recursionDepth">深度</param>   
  19.         /// <returns>json數(shù)據(jù)</returns>   
  20.         public static string ToJson(this object obj, int recursionDepth)  
  21.         {  
  22.             JavaScriptSerializer serialize = new JavaScriptSerializer();  
  23.             serialize.RecursionLimit = recursionDepth;  
  24.             return serialize.Serialize(obj);  
  25.         }  
  26.   
  27.         /// <summary>   
  28.         /// DataTable轉(zhuǎn)為json   
  29.         /// </summary>   
  30.         /// <param name="dt">DataTable</param>   
  31.         /// <returns>json數(shù)據(jù)</returns>   
  32.         public static string ToJson(DataTable dt)  
  33.         {  
  34.             Dictionary<string, object> dic = new Dictionary<string, object>();  
  35.   
  36.             int index = 0;  
  37.             foreach (DataRow dr in dt.Rows)  
  38.             {  
  39.                 Dictionary<string, object> result = new Dictionary<string, object>();  
  40.   
  41.                 foreach (DataColumn dc in dt.Columns)  
  42.                 {  
  43.                     result.Add(dc.ColumnName, dr[dc].ToString());  
  44.                 }  
  45.                 dic.Add(index.ToString(), result);  
  46.                 index++;  
  47.             }  
  48.             return ToJson(dic);  
  49.         }  
  50.     }  

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 末成年女av片一区二区 | 高清国产福利 | 久久久一区二区三区视频 | 黄色免费播放网站 | 亚洲精品a在线观看 | 久久欧美亚洲另类专区91大神 | 在线观看av国产一区二区 | av在线免费网址 | 草操影院| 手机av免费电影 | 蜜桃免费在线 | 成人羞羞视频在线观看 | 一级美女大片 | 亚洲射情| 在线播放免费人成毛片乱码 | 国产精品99久久久久久久女警 | 精品一区二区三区免费毛片 | 国产91一区二区三区 | 2019亚洲日韩新视频 | a黄毛片 | 久久久久久久久免费 | 亚洲精品a级 | 欧美日本综合 | 美国黄色毛片女人性生活片 | 神马久久蜜桃 | 操操操操网 | 毛片毛片 | 国产好片无限资源 | 久久亚洲一区二区三区成人国产 | 国产精品三级a三级三级午夜 | 久久久久久中文字幕 | 激情久久精品 | 国产日韩免费观看 | 西川av在线一区二区三区 | 夜夜夜精品视频 | 成人精品视频在线 | 国产98色在线 | 精品欧美一区二区精品久久 | av电影在线网 | 中文字幕亚洲一区二区三区 | 成人国产精品一区 |