C# Json反序列化
2018-06-17 18:59:58来源:未知 阅读 ()
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; } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:获取json串里的某个属性值
- JSON文本文件导入到Sqlite3数据库 2020-03-02
- Delphi解析修改Json文件,基于superobject.pas(ISuperObjec 2019-05-08
- Delphi中使用ISuperObject解析Json数据 2019-04-25
- SuperObject Delphi 的 JSON 属性乱序 - 操作类改造 - 关于 2018-11-20
- 点滴积累【C#】---序列化和反序列化 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash