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

C#中Json反序列化的實(shí)現(xiàn)方法

 更新時(shí)間:2018年06月03日 16:30:37   作者:劉Te  
這篇文章主要給大家介紹了關(guān)于C#中Json反序列化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

Json反序列化有兩種方式【本人】,一種是生成實(shí)體的,方便處理大量數(shù)據(jù),復(fù)雜度稍高,一種是用匿名類寫,方便讀取數(shù)據(jù),較為簡(jiǎn)單。

使用了Newtonsoft.Json,可以自行在nuget中導(dǎo)入

Json源數(shù)據(jù):

 var data = "{'jingdong_ldop_receive_trace_get_responce':{'code':'0','querytrace_result':{'data':[{'opeTitle':'快遞簽收','opeRemark':'貨物已交付京東物流','opeTime':'2011/04/17 18:23:20','opeName':'京東快遞','waybillCode':'bc00000001'},{'opeTitle':'站點(diǎn)驗(yàn)貨','opeRemark':'貨物已分配,等待配送','opeTime':'2011/04/23 08:29:56','opeName':'京東快遞','waybillCode':'bc00000001'},{'opeTitle':'配送員收貨','opeRemark':'配送員開始配送,請(qǐng)您準(zhǔn)備收貨,','opeTime':'2011/04/23 08:36:28','opeName':'京東快遞','waybillCode':'bc00000001'},{'opeTitle':'妥投','opeRemark':'貨物已完成配送,感謝您選擇京東物流','opeTime':'2011/04/23 09:47:13','opeName':'京東快遞','waybillCode':'bc00000001'}],'messsage':'成功','code':100}}}";

第一種:是用匿名方法生成,按照J(rèn)son的格式,從外到內(nèi),一步一步寫,非數(shù)組用new{},數(shù)組用new[]{},名字必須與json中名字一致

//使用匿名變量構(gòu)造
   {
    var JsonDataForVar = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(data, new
    {
     jingdong_ldop_receive_trace_get_responce = new
     {
      code = string.Empty,
      querytrace_result = new
      {
       data = new[] {
       new {
         opeTitle=string.Empty,
         opeRemark=string.Empty,
         opeTime=string.Empty,
         waybillCode=string.Empty,
         opeName=string.Empty
       }
      }
      }
     }
    });

    foreach (var item in JsonDataForVar.jingdong_ldop_receive_trace_get_responce.querytrace_result.data)
    {
     var a = item.opeTitle;
     var b = item.opeRemark;
     var c = item.opeTime;
     var d = item.waybillCode;
     var f = item.opeName;

    }
   }

第二種:使用實(shí)體

//實(shí)體部分,建議從內(nèi)到外寫實(shí)體,名字必須與json中名字一致【簡(jiǎn)便方法,搜索Json轉(zhuǎn)實(shí)體,將Json字符串導(dǎo)入,自動(dòng)生成實(shí)體】

public class Item
  {
   public string opeTitle { get; set; }
   public string opeRemark { get; set; }
   public string opeTime{ get; set; }
   public string waybillCode { get; set; }
   public string opeName { get; set; }
  }

  public class JdResult
  {
   public string code { get; set; }
   public string msg { get; set; }
   public List<Item> data { get; set; }
  }

  public class JdResponce
  {
   public string code { get; set; }

   public JdResult querytrace_result { get; set; }
  }

  public class JdBody
  {
   public JdResponce jingdong_ldop_receive_trace_get_responce { get; set; }
  }

//方法

//使用實(shí)體構(gòu)造
   {
    var JsonDataForClass = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(data, new JdBody());

    foreach (var item in JsonDataForClass.jingdong_ldop_receive_trace_get_responce.querytrace_result.data)
    {
     var a = item.opeTitle;
     var b = item.opeRemark;
     var c = item.opeTime;
     var d = item.waybillCode;
     var f = item.opeName;
    }
   }

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • C#?使用PrintDocument類打印標(biāo)簽的方法

    C#?使用PrintDocument類打印標(biāo)簽的方法

    本文介紹打印機(jī)初步配置,以及實(shí)現(xiàn)方法,標(biāo)簽主要展示資產(chǎn)基本信息以及二維碼,對(duì)C#?使用PrintDocument類打印標(biāo)簽的詳細(xì)過(guò)程感興趣的朋友一起看看吧
    2022-04-04
  • C#實(shí)現(xiàn)Redis的分布式鎖

    C#實(shí)現(xiàn)Redis的分布式鎖

    我們?cè)陂_發(fā)很多業(yè)務(wù)場(chǎng)景會(huì)使用到鎖,例如庫(kù)存控制,抽獎(jiǎng)等。分布式與單機(jī)情況下最大的不同在于其不是多線程而是多進(jìn)程。本文就來(lái)介紹一下,感興趣的可以了解一下
    2021-08-08
  • C#實(shí)現(xiàn)定時(shí)關(guān)機(jī)小應(yīng)用

    C#實(shí)現(xiàn)定時(shí)關(guān)機(jī)小應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)定時(shí)關(guān)機(jī)小應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • C# DataTable常見(jiàn)用法匯總

    C# DataTable常見(jiàn)用法匯總

    這篇文章主要介紹了C# DataTable常見(jiàn)用法,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-08-08
  • C#常見(jiàn)應(yīng)用函數(shù)實(shí)例小結(jié)

    C#常見(jiàn)應(yīng)用函數(shù)實(shí)例小結(jié)

    這篇文章主要介紹了C#常見(jiàn)應(yīng)用函數(shù),結(jié)合實(shí)例形式總結(jié)分析了C#常用的時(shí)間、URL、HTML、反射、小數(shù)運(yùn)算等相關(guān)函數(shù),需要的朋友可以參考下
    2017-01-01
  • 深入理解C#管道式編程

    深入理解C#管道式編程

    這篇文章主要給大家介紹了關(guān)于C#管道式編程的介紹與實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • C#?CefSharp?根據(jù)輸入日期段自動(dòng)選擇日期的操作代碼

    C#?CefSharp?根據(jù)輸入日期段自動(dòng)選擇日期的操作代碼

    這篇文章主要介紹了C#?CefSharp?根據(jù)輸入日期段自動(dòng)選擇日期的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • C#實(shí)現(xiàn)Markdown內(nèi)容轉(zhuǎn)為Word或PDF

    C#實(shí)現(xiàn)Markdown內(nèi)容轉(zhuǎn)為Word或PDF

    Markdown作為一種輕量級(jí)的標(biāo)記語(yǔ)言,因其簡(jiǎn)潔易讀、語(yǔ)法清晰的特點(diǎn)被廣大程序員和技術(shù)文檔編寫者所青睞,本文主要介紹了如何使用C#實(shí)現(xiàn)Markdown內(nèi)容轉(zhuǎn)為Word或PDF,需要的可以參考下
    2024-03-03
  • C# WebApi 路由機(jī)制剖析

    C# WebApi 路由機(jī)制剖析

    這篇文章主要介紹了C# WebApi 路由機(jī)制剖析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 如何在datatable中使用groupby進(jìn)行分組統(tǒng)計(jì)

    如何在datatable中使用groupby進(jìn)行分組統(tǒng)計(jì)

    如何在datatable中進(jìn)行分組,并且計(jì)算分組后每組的數(shù)量,考慮了一下,可以使用LINQ來(lái)實(shí)現(xiàn)datatable分組,需要的朋友可以參考下
    2015-08-08

最新評(píng)論