欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年09月24日 11:00:51   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)Json字符串處理,通過(guò)一個(gè)json實(shí)例分析了C#進(jìn)行JSON操作的方法,需要的朋友可以參考下

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

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

下面這個(gè)是在快遞100往抓取的一個(gè)圓通的快遞信息。對(duì)于我們有用的信息是快遞時(shí)間,快遞狀況。那我該如何來(lái)做?!?/p>

{"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}};我們先定義一個(gè)類,取名為PostalDeliveryModel,類名的結(jié)構(gòu)需要與Json結(jié)構(gòu)對(duì)應(yīng),名稱需要保持一樣[忽略大小寫],其次對(duì)應(yīng)的字段說(shuō)會(huì)自動(dòng)轉(zhuǎn)換類型的,類型如果不符合會(huì)拋出異常

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.對(duì)象什么好后只需要調(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; // 此命名空間對(duì)應(yīng)的框架是 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.運(yùn)行監(jiān)控model對(duì)象.數(shù)據(jù)已經(jīng)在對(duì)象里面了。

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

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

相關(guān)文章

  • c#通用登錄模塊分享

    c#通用登錄模塊分享

    這是一款簡(jiǎn)單的ASP.NETC#注冊(cè)登錄模塊制作思路,非常簡(jiǎn)單實(shí)用,雖然沒怎么考慮登陸的安全性,但作為C#的朋友學(xué)習(xí)交流使用。
    2016-07-07
  • 磁盤配額的wmi版本(C#)

    磁盤配額的wmi版本(C#)

    磁盤配額的wmi版本(C#)...
    2007-03-03
  • winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例

    winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字

    C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 詳解C#實(shí)例化對(duì)象的三種方式及性能對(duì)比

    詳解C#實(shí)例化對(duì)象的三種方式及性能對(duì)比

    這篇文章主要介紹了C#實(shí)例化對(duì)象的三種方式及性能對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C#如何訪問(wèn)共享文件夾或者磁盤

    C#如何訪問(wèn)共享文件夾或者磁盤

    這篇文章主要為大家詳細(xì)介紹了C#訪問(wèn)共享文件夾或者磁盤,需要用戶名密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C#文件操作、讀取文件、Debug/Trace類用法

    C#文件操作、讀取文件、Debug/Trace類用法

    這篇文章介紹了C#文件操作、讀取文件、Debug/Trace類的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#操作非持久化內(nèi)存映射文件詳解

    C#操作非持久化內(nèi)存映射文件詳解

    多個(gè)進(jìn)程之間,通過(guò)操作未映射到磁盤上現(xiàn)有文件的內(nèi)存映射文件,可以實(shí)現(xiàn)數(shù)據(jù)共享和類似進(jìn)程間通訊的功能,下面我們就來(lái)學(xué)習(xí)一下C#如何操作非持久化內(nèi)存映射文件的吧
    2023-12-12
  • 帶你一文了解C#中的LINQ

    帶你一文了解C#中的LINQ

    c#提供的ling查詢極大的遍歷了集合的查詢過(guò)程,且使用簡(jiǎn)單方便,非常的有用,下面這篇文章主要給大家介紹了關(guān)于C#中LINQ的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • C#中事件只能在內(nèi)部調(diào)用的原因分析

    C#中事件只能在內(nèi)部調(diào)用的原因分析

    事件(Event)?基本上說(shuō)是一個(gè)用戶操作,如按鍵、點(diǎn)擊、鼠標(biāo)移動(dòng)等等,或者是一些提示信息,如系統(tǒng)生成的通知。應(yīng)用程序需要在事件發(fā)生時(shí)響應(yīng)事件,這篇文章主要介紹了C#中事件為什么只能在內(nèi)部調(diào)用,需要的朋友可以參考下
    2021-11-11

最新評(píng)論