Json字符串对付做web应用的应该很熟悉,其实在很多请求我们返回的都是Json字符串。那对付C#代码如何措置惩罚惩罚Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSDN Library 链接
];这个类供给了一个要领。
下面这个是我在快递100往抓取的一个圆通的快递信息。对付我们有用的信息是快递时间,快递状况。那我该如何来做。
代码如下:
{“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布局对应,名称需要连结一样[忽略巨细写],其次对应的字段说会自动转换类型的,类型如果不切合会抛出异常
代码如下:
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.东西什么好后只需要挪用要领即可:
代码如下:
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东西.数据已经在东西里面了。
4.要领回顾,虽然获取到了。不过这种要领类的Public属性名称必需与Json字符串对应,不知道可否通过在Public属性的上面加上[标签]来映射,这样可以自界说名称,不再需要与Json里面名称一样。求其他大牛在评论的时候指点一下。
以上所述就是对付c#如何措置惩罚惩罚json字符串的全部内容了,但愿大家能够喜欢。