Json字符串對於作web應用的應該很熟悉,其實在不少請求咱們返回的都是Json字符串。那對於C#代碼如何處理Json字符串呢,.Net封裝了一個類叫作JavaScriptSerializer[MSDN Library 連接http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx];這個類提供了一個方法。web
下面這個是我在快遞100往抓取的一個圓通的快遞信息。對於咱們有用的信息是快遞時間,快遞情況。那我該如何來作。 json
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.對象什麼好後只須要調用方法便可:框架
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Web.Script.Serialization; // 此命名空間對應的框架是 System.Web.Extensions namespace 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.運行監控model對象.數據已經在對象裏面了。
this
4.方法回顧,雖然獲取到了。不過這種方法類的Public屬性名稱必須與Json字符串對應,不知道能否經過在Public屬性的上面加上[標籤]來映射,這樣能夠自定義名稱,再也不須要與Json裏面名稱同樣。求其餘大牛在評論的時候指點一下。spa