亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#操作json類型數據

2019-11-14 16:15:26
字體:
來源:轉載
供稿:網友

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

//  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數據到前臺  
  3.         /// </summary>  
  4.         /// <param name="dt">數據表</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類型數據:

 

 

[csharp] view plaincopy
  1. public static class JsonTableHelper  
  2.     {  
  3.         /// <summary>   
  4.         /// 返回對象序列化   
  5.         /// </summary>   
  6.         /// <param name="obj">源對象</param>   
  7.         /// <returns>json數據</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">源對象</param>   
  18.         /// <param name="recursionDepth">深度</param>   
  19.         /// <returns>json數據</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轉為json   
  29.         /// </summary>   
  30.         /// <param name="dt">DataTable</param>   
  31.         /// <returns>json數據</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.     }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品丝袜视频| 亚洲国产私拍精品国模在线观看| 国产在线视频不卡| 欧美成人午夜影院| 国产精品男人的天堂| 中文字幕久精品免费视频| 久久久女人电视剧免费播放下载| 国产最新精品视频| 国产精品日日做人人爱| 亚洲人成电影网| 国产精品电影久久久久电影网| 欧美成人中文字幕| 色哟哟网站入口亚洲精品| 91tv亚洲精品香蕉国产一区7ujn| 亚洲人成电影网站色xx| 欧美成人中文字幕在线| 成人乱色短篇合集| 久久久久国色av免费观看性色| 在线观看欧美成人| 亚洲成人久久电影| 欧美精品在线免费播放| 欧美日韩国产精品一区| 国产午夜一区二区| 国产伦精品一区二区三区精品视频| 国产日韩在线看片| 97精品免费视频| 欧美亚洲在线播放| 亚洲成人av在线| 亚洲成人1234| 欧美成人免费播放| 日韩精品一区二区视频| 亚洲欧洲高清在线| 久久久久久久久91| 日韩在线视频免费观看| 亚洲精品91美女久久久久久久| 国产精品自产拍高潮在线观看| 亚洲精品国产美女| 日韩经典中文字幕| 一区二区在线免费视频| 精品福利免费观看| 欧美日韩另类字幕中文| 亚洲影视九九影院在线观看| 亚洲日本成人女熟在线观看| 欧日韩不卡在线视频| 久久久久久综合网天天| 日韩电影中文字幕在线| 国产ts一区二区| 国产精品女人网站| 国产欧美日韩免费| 视频一区视频二区国产精品| 久久av在线看| 午夜免费在线观看精品视频| 在线视频一区二区| 欧美性jizz18性欧美| 欧美激情一区二区三区成人| 久久久久成人精品| 自拍偷拍免费精品| 国产欧美日韩精品在线观看| 欧美精品亚州精品| 欧美激情啊啊啊| 亚洲影视中文字幕| 久久男人av资源网站| 精品久久久久久久久久ntr影视| 日韩成人性视频| 一区二区欧美在线| 在线性视频日韩欧美| 欧美性xxxxx极品娇小| 亚洲色图综合网| 日韩成人中文字幕| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品美女www爽爽爽视频| 热久久这里只有精品| 亚洲无亚洲人成网站77777| 久久亚洲一区二区三区四区五区高| 欧美精品免费在线| 欧美在线一级va免费观看| 欧美成人午夜影院| 一本色道久久综合狠狠躁篇的优点| 国产成人精品久久久| 亚洲xxxxx| 欧美日韩成人网| 欧美大荫蒂xxx| 青青草一区二区| 亚洲欧美制服另类日韩| 国产成人a亚洲精品| 成人妇女淫片aaaa视频| 色无极亚洲影院| 亚洲免费小视频| 亚洲加勒比久久88色综合| 亚洲欧美日韩国产精品| 国产一区二区日韩精品欧美精品| 欧美成人免费全部观看天天性色| 成人免费午夜电影| 国产精品成人v| 在线播放国产一区二区三区| 国产综合在线观看视频| 国产精品久久久久久久久久三级| 欧美专区日韩视频| 亚洲另类图片色| 91视频8mav| 亚洲四色影视在线观看| 韩曰欧美视频免费观看| 欧美激情视频一区二区三区不卡| 亚洲精品日韩激情在线电影| 欧美大片在线免费观看| 亚洲欧洲在线观看| 国产精品视频xxx| 青青在线视频一区二区三区| 亚洲一区二区自拍| 国产精品高清网站| 91精品国产综合久久香蕉最新版| 欧美午夜www高清视频| 久久亚洲成人精品| 成人淫片在线看| 亚洲免费人成在线视频观看| 亚洲偷欧美偷国内偷| 欧美一级成年大片在线观看| 国外成人在线直播| 欧美在线不卡区| 久久精品国产一区| 91精品视频网站| 全球成人中文在线| 日韩中文字幕网| 亚洲国产99精品国自产| 7777kkkk成人观看| 亚洲精品一区二区三区婷婷月| 成人在线观看视频网站| 中文字幕精品一区二区精品| 久久久国产精品免费| 日韩中文字幕在线播放| 成人激情电影一区二区| 亚洲xxxx18| 欧美午夜性色大片在线观看| 91亚洲午夜在线| 国产区精品视频| 国产精品高潮呻吟久久av黑人| 最近2019免费中文字幕视频三| 国产精品久久久久久久久久久不卡| 91中文字幕在线观看| 亚洲欧美日韩区| 欧美日韩成人精品| 操日韩av在线电影| 自拍视频国产精品| 欧美午夜精品伦理| 欧美日韩美女在线| 国产精品视频一区二区三区四| 欧美亚洲另类激情另类| 国产在线视频91| 中文字幕亚洲一区二区三区| 91免费人成网站在线观看18| 九九热这里只有精品6| 精品久久久久久久久中文字幕| 国产精品久久一| 久久久亚洲国产天美传媒修理工| 91网站在线看| 欧美精品中文字幕一区| 欧美一区二区三区艳史| 精品无码久久久久久国产| 成人在线一区二区| 色99之美女主播在线视频| 日韩欧美在线观看| 久久亚洲国产精品成人av秋霞| 日韩电影免费在线观看中文字幕| 亚洲精品视频中文字幕|