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

首頁 > 編程 > C# > 正文

C#中Json反序列化的實現方法

2019-10-29 19:59:04
字體:
來源:轉載
供稿:網友

前言

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

使用了Newtonsoft.Json,可以自行在nuget中導入

Json源數據:

 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':'站點驗貨','opeRemark':'貨物已分配,等待配送','opeTime':'2011/04/23 08:29:56','opeName':'京東快遞','waybillCode':'bc00000001'},{'opeTitle':'配送員收貨','opeRemark':'配送員開始配送,請您準備收貨,','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}}}";

第一種:是用匿名方法生成,按照Json的格式,從外到內,一步一步寫,非數組用new{},數組用new[]{},名字必須與json中名字一致

//使用匿名變量構造   {    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;    }   }

第二種:使用實體

//實體部分,建議從內到外寫實體,名字必須與json中名字一致【簡便方法,搜索Json轉實體,將Json字符串導入,自動生成實體】

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; }  }

//方法

//使用實體構造   {    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;    }   }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 容城县| 阿克陶县| 仙桃市| 广灵县| 神池县| 报价| 汝州市| 龙门县| 栾川县| 灌云县| 肥城市| 尚义县| 独山县| 珲春市| 宣城市| 麟游县| 乌海市| 仙游县| 美姑县| 恩施市| 彰武县| 论坛| 西贡区| 安宁市| 漳州市| 高邑县| 那曲县| 驻马店市| 奉化市| 岚皋县| 罗源县| 九龙县| 工布江达县| 积石山| 井冈山市| 佛冈县| 怀远县| 阜平县| 嵩明县| 呼玛县| 台湾省|