C#中Json反序列化的實(shí)現(xiàn)方法
前言
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à)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- C#實(shí)現(xiàn)XML序列化與反序列化
- C#對(duì)Json進(jìn)行序列化和反序列化
- C#中關(guān)于序列化與反序列化的三種方法
- C# 解析XML和反序列化的示例
- C# Newtonsoft.Json 解析多嵌套json 進(jìn)行反序列化的實(shí)例
- C#實(shí)現(xiàn)XML與實(shí)體類之間相互轉(zhuǎn)換的方法(序列化與反序列化)
- C#序列化與反序列化(Serialize,Deserialize)實(shí)例詳解
- c#對(duì)象反序列化與對(duì)象序列化示例詳解
- C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼
- 深入理解C#序列化與反序列化的詳解
- C# SimpleJSON字典反序列化實(shí)戰(zhàn)教程
相關(guān)文章
使用C# 調(diào)用deepseek api接口實(shí)現(xiàn)正常訪問的過程
本文介紹了使用C#調(diào)用deepseek API接口實(shí)現(xiàn)正常訪問的方法,包括解決SSL/TLS安全通道問題和切換模型等常見問題,并提供了默認(rèn)使用的reasoner模型和賬戶余額信息,感興趣的朋友一起看看吧2025-02-02
C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#使用windows服務(wù)開啟應(yīng)用程序的方法
這篇文章主要介紹了C#使用windows服務(wù)開啟應(yīng)用程序的方法,實(shí)例分析了C#操作windows服務(wù)開啟應(yīng)用程序所遇到的問題及相關(guān)解決技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Unity ScrollRect實(shí)現(xiàn)軌跡滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollRect實(shí)現(xiàn)軌跡滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

