源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#处理Json字符串实例分析

  • 时间:2021-04-12 01:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#处理Json字符串实例分析
Json字符串对于做web应用的应该很熟悉,其实在很多请求我们返回的都是Json字符串。那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSDN Library 链接[url=http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx]http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx[/url]];这个类提供了一个方法。           下面这个是我在快递100往抓取的一个圆通的快递信息。对于我们有用的信息是快递时间,快递状况。那我该如何来做。 
[u]复制代码[/u] 代码如下:
{"message":"ok","nu":"9356359685","ischeck":"1","com":"yuantong","status":"200","condition":"F00","state":"3","data":[{"time":"2014-09-01 21:19:06","context":"甘肃省武威市公司 已签收 ","ftime":"2014-09-01 21:19:06"},{"time":"2014-09-01 09:09:28","context":"甘肃省武威市公司 派件中 ","ftime":"2014-09-01 09:09:28"},{"time":"2014-09-01 09:06:27","context":"甘肃省武威市公司 已收入 ","ftime":"2014-09-01 09:06:27"},{"time":"2014-08-31 19:53:47","context":"甘肃省兰州市公司 已发出 ","ftime":"2014-08-31 19:53:47"},{"time":"2014-08-31 19:17:41","context":"甘肃省兰州市公司 已收入 ","ftime":"2014-08-31 19:17:41"},{"time":"2014-08-28 23:44:26","context":"广东省深圳市横岗公司 已打包 ","ftime":"2014-08-28 23:44:26"},{"time":"2014-08-28 23:19:12","context":"广东省深圳市横岗公司 已收件 ","ftime":"2014-08-28 23:19:12"},{"time":"2014-08-28 21:55:35","context":"广东省深圳市横岗公司 已收件 ","ftime":"2014-08-28 21:55:35"}]}
  1. 首先分析Json字符串结构. Json{ message,nu,isCheck,Data{time,context,ftime}};我们先定义一个类,取名为PostalDeliveryModel,类名的结构需要与Json结构对应,名称需要保持一样[忽略大小写],其次对应的字段说会自动转换类型的,类型如果不符合会抛出异常
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestJson {     public class PostalDeliveryModel     {         private string message = string.Empty;         private string nu = string.Empty;         private List<SingalData> data = new List<SingalData>();         // Puclic的名字需要与Json字符串相同,但是忽略大小写         public string Message         {             get { return this.message; }             set { this.message = value; }         }         public string Nu         {             get { return this.nu; }             set { this.nu = value; }         }         public List<SingalData> Data         {             get { return this.data; }             set { this.data = value; }         }     }     public class SingalData     {         private DateTime time = System.DateTime.Now;         private string context = string.Empty;         private DateTime ftime = System.DateTime.Now;         public DateTime Time         {             get { return this.time; }             set { this.time = value; }         }         public DateTime FTime         {             get { return this.ftime; }             set { this.ftime = value; }         }         public string Context         {             get { return this.context; }             set { this.context = value; }         }     } }
     2.对象什么好后只需要调用方法即可:
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Web.Script.Serialization; // 此命名空间对应的框架是 System.Web.Extensions namespace TestJson {     public class Program     {         public static void Main(string[] args)         {             string jsonStr = new StreamReader("JsonData.txt").ReadToEnd();             PostalDeliveryModel mode = new JavaScriptSerializer().Deserialize<PostalDeliveryModel>(jsonStr);             Console.ReadKey();         }     } }
       3.运行监控model对象.数据已经在对象里面了。 [img]http://files.jb51.net/file_images/article/201502/201502220925591.jpg[/img]     4.方法回顾,虽然获取到了。不过这种方法类的Public属性名称必须与Json字符串对应,不知道可否通过在Public属性的上面加上[标签]来映射,这样可以自定义名称,不再需要与Json里面名称一样。求其他大牛在评论的时候指点一下。 以上所述就是对于c#如何处理json字符串的全部内容了,希望大家能够喜欢。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部