网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋友。
一、C#处理简单json数据
json数据:
1 | { "result" : "0" , "res_info" : "ok" , "queryorder_info" : "info" } |
我这里是以jsonmy1.txt文件的形式保存在d盘json文件夹下。
构造对象:
1 2 3 4 5 6 | public struct ToJsonMy { public string result { get ; set ; } //属性的名字,必须与json格式字符串中的"key"值一样。 public string res_info { get ; set ; } public string queryorder_info { get ; set ; } } |
转换过程:
1 2 3 4 5 6 7 8 9 | public static void JsonMy() { string json = Jsonstr( "D:\\json\\jsonmy1.txt" ); //Jsonstr函数读取json数据的文本txt JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类 ToJsonMy list = js.Deserialize<ToJsonMy>(json); //将json数据转化为对象类型并赋值给list string result = list.result; string res_info = list.res_info; string queryorder_info = list.res_info; } |
二、C#处理包含对象的json数据
json数据:jsonmy2.txt
1 | { "result" : "0" , "res_info" : "ok" , "queryorder_info" :{ "order_num" : "5" , "orderdetail" : "ok" }} |
构造对象:
1 2 3 4 5 6 7 8 9 10 11 | public struct ToJsonMy2 { public string result { get ; set ; } public string res_info { get ; set ; } public queryorder_info queryorder_info; } public struct queryorder_info { public string order_num { get ; set ; } public string orderdetail { get ; set ; } }; |
转换过程:
1 2 3 4 5 6 7 8 9 10 | public static void JsonMy2() { string json = Jsonstr( "D:\\json\\jsonmy2.txt" ); JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类 ToJsonMy2 list = js.Deserialize<ToJsonMy2>(json); //将json数据转化为对象类型并赋值给list string result = list.result; string res_info = list.res_info; string order_num = list.queryorder_info.order_num; string orderdetail = list.queryorder_info.orderdetail; } |
三、C#处理包含对象、数组的json数据
json数据:jsonmy4.txt
1 | { "result" : "0" , "res_info" : "ok" , "queryorder_info" :{ "order_num" : "5" , "orderdetail" :[{ "CFTUin" : "769839263" , "CancelDeadline" : "2013-09-12 23:00:00" , "CheckInDate" : "2013-09-12 00:00:00" , "CheckOutDate" : "2013-09-13 00:00:00" , "CityID" : "0101" , "CurrencyCode" : "RMB" , "HotelID" : "00301105" , "HotelName" : "乐家连锁(北京天坛南门店)(原速8酒店(北京天坛南门店)" , "ListID" : "1000000005201308280002999652" , "PayAmt" : "228" , "PayType" : "0" , "RommsCnt" : "1" , "SPTransID" : "65202157" , "State" : "4" },{ "CFTUin" : "248486133" , "CancelDeadline" : "2013-10-13 23:00:00" , "CheckInDate" : "2013-10-13 00:00:00" , "CheckOutDate" : "2013-10-18 00:00:00" , "CityID" : "0201" , "CurrencyCode" : "RMB" , "HotelID" : "10201314" , "HotelName" : "上海凯顿酒店" , "ListID" : "1000000005201308280002999413" , "PayAmt" : "1140" , "PayType" : "0" , "RommsCnt" : "1" , "SPTransID" : "65197226" , "State" : "4" }]}} |
构造对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | public struct ToJsonMy3 { public string result { get ; set ; } public string res_info { get ; set ; } public queryorder_info queryorder_info; } public struct queryorder_info { public string order_num { get ; set ; } public List<orderdetail> orderdetail; //数组处理 }; public struct orderdetail { public string CFTUin { get ; set ; } public string CancelDeadline { get ; set ; } public string CheckInDate { get ; set ; } public string CheckOutDate { get ; set ; } public string CityID { get ; set ; } public string CurrencyCode { get ; set ; } public string HotelID { get ; set ; } public string HotelName { get ; set ; } public string ListID { get ; set ; } public string PayAmt { get ; set ; } public string PayType { get ; set ; } public string RommsCnt { get ; set ; } public string SPTransID { get ; set ; } public string State { get ; set ; } }; |
转换过程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static void JsonMy4() { string json = Jsonstr( "D:\\json\\jsonmy4.txt" ); JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类 ToJsonMy3 list = js.Deserialize<ToJsonMy3>(json); //将json数据转化为对象类型并赋值给list string result = list.result; string res_info = list.res_info; string order_num = list.queryorder_info.order_num; List<orderdetail> orderdetail = list.queryorder_info.orderdetail; string CFTUin = orderdetail[0].CFTUin; string HotelName = orderdetail[0].HotelName; string ListID = orderdetail[1].ListID; string State = orderdetail[2].State; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· 盘点!HelloGitHub 年度热门开源项目
· DeepSeek V3 两周使用总结
· 02现代计算机视觉入门之:什么是视频
· C#使用yield关键字提升迭代性能与效率
· 2. 什么?你想跨数据库关联查询?