国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現(xiàn)對Json字符串處理實例

2020-01-24 02:23:34
字體:
供稿:網(wǎng)友

本文實例講述了C#實現(xiàn)對Json字符串處理方法,分享給大家供大家參考。具體分析如下:

一般對于web應(yīng)用開發(fā)人員來說對Json字符串都會很熟悉,其實在很多請求我們返回的都是Json字符串。那對于C#代碼如何處理Json字符串呢,.Net封裝了一個類叫做JavaScriptSerializer[MSDN Library 鏈接:http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx];這個類提供了一個方法。

下面這個是在快遞100往抓取的一個圓通的快遞信息。對于我們有用的信息是快遞時間,快遞狀況。那我該如何來做。 

{"message":"ok","nu":"9356359685","ischeck":"1","com":"yuantong","status":"200","condition":"F00","state":"3","data":[{"time":"2014-09-01 21:19:06","context":"甘肅省武威市公司 已簽收 ","ftime":"2014-09-01 21:19:06"},{"time":"2014-09-01 09:09:28","context":"甘肅省武威市公司 派件中 ","ftime":"2014-09-01 09:09:28"},{"time":"2014-09-01 09:06:27","context":"甘肅省武威市公司 已收入 ","ftime":"2014-09-01 09:06:27"},{"time":"2014-08-31 19:53:47","context":"甘肅省蘭州市公司 已發(fā)出 ","ftime":"2014-08-31 19:53:47"},{"time":"2014-08-31 19:17:41","context":"甘肅省蘭州市公司 已收入 ","ftime":"2014-08-31 19:17:41"},{"time":"2014-08-28 23:44:26","context":"廣東省深圳市橫崗公司 已打包 ","ftime":"2014-08-28 23:44:26"},{"time":"2014-08-28 23:19:12","context":"廣東省深圳市橫崗公司 已收件 ","ftime":"2014-08-28 23:19:12"},{"time":"2014-08-28 21:55:35","context":"廣東省深圳市橫崗公司 已收件 ","ftime":"2014-08-28 21:55:35"}]}

 
1. 首先分析Json字符串結(jié)構(gòu). Json{ message,nu,isCheck,Data{time,context,ftime}};我們先定義一個類,取名為PostalDeliveryModel,類名的結(jié)構(gòu)需要與Json結(jié)構(gòu)對應(yīng),名稱需要保持一樣[忽略大小寫],其次對應(yīng)的字段說會自動轉(zhuǎn)換類型的,類型如果不符合會拋出異常

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace TestJson{  public class PostalDeliveryModel  {    private string message = string.Empty;    private string nu = string.Empty;    private List<SingalData> data = new List<SingalData>();    // Puclic的名字需要與Json字符串相同,但是忽略大小寫    public string Message     {      get { return this.message; }      set { this.message = value; }    }    public string Nu    {      get { return this.nu; }      set { this.nu = value; }    }    public List<SingalData> Data    {      get { return this.data; }      set { this.data = value; }    }  }  public class SingalData  {    private DateTime time = System.DateTime.Now;    private string context = string.Empty;    private DateTime ftime = System.DateTime.Now;    public DateTime Time    {      get { return this.time; }      set { this.time = value; }    }    public DateTime FTime    {      get { return this.ftime; }      set { this.ftime = value; }    }    public string Context    {      get { return this.context; }      set { this.context = value; }    }  }}

2.對象什么好后只需要調(diào)用方法即可:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using System.Web.Script.Serialization; // 此命名空間對應(yīng)的框架是 System.Web.Extensionsnamespace TestJson{  public class Program  {    public static void Main(string[] args)    {      string jsonStr = new StreamReader("JsonData.txt").ReadToEnd();      PostalDeliveryModel mode = new JavaScriptSerializer().Deserialize<PostalDeliveryModel>(jsonStr);      Console.ReadKey();    }  }}

3.運行監(jiān)控model對象.數(shù)據(jù)已經(jīng)在對象里面了。

4.方法回顧,雖然獲取到了。不過這種方法類的Public屬性名稱必須與Json字符串對應(yīng),不知道可否通過在Public屬性的上面加上[標(biāo)簽]來映射,這樣可以自定義名稱,不再需要與Json里面名稱一樣。感興趣的朋友可以對此進一步研究一下!

希望本文所述對大家C#程序設(shè)計的學(xué)習(xí)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 塔河县| 弋阳县| 新营市| 子长县| 密山市| 贡觉县| 得荣县| 满城县| 乾安县| 庆安县| 龙南县| 台前县| 贺州市| 大理市| 汽车| 酒泉市| 泾源县| 丰镇市| 上林县| 扎赉特旗| 昌平区| 黄陵县| 陇南市| 邻水| 五家渠市| 凤凰县| 辽源市| 灵川县| 渝北区| 青铜峡市| 廊坊市| 嫩江县| 友谊县| 诏安县| 涡阳县| 宁河县| 社会| 商都县| 蚌埠市| 利津县| 隆回县|