本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下:
一般对于web应用开发人员来说对Json字符串都会很熟悉,其实在很多请求我们返回的都是Json字符串。那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSDN Library 链接:http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx];这个类提供了一个方法。
下面这个是在快递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#程序设计的学习有所帮助。
本文向大家介绍批处理中字符串分割实现代码,包括了批处理中字符串分割实现代码的使用技巧和注意事项,需要的朋友参考一下 批处理 字符串分割 实例 使用for命令可以对字符串进行分段处理。 分割字符串 主要解释for语句: delims=;表示以分号作为分隔符,对remain字符串进行分割处理。 tokens=1*,tokens表示分段的方式,tokens=1*表示第一个分隔符;之前的作为一部分,剩下的
本文向大家介绍C/C++字符串与数字互转的实现,包括了C/C++字符串与数字互转的实现的使用技巧和注意事项,需要的朋友参考一下 C数字转字符串 C字符串转数字 C++字符串转数字 C++11增加std::stoi/stol/stoll等等函数可以 转换 C++数字转字符串 C++11增加了全局函数std::to_string,以及std::stoi/stol/stoll等等函数 string和ch
本文向大家介绍C/C++ 实现递归和栈逆序字符串的实例,包括了C/C++ 实现递归和栈逆序字符串的实例的使用技巧和注意事项,需要的朋友参考一下 C/C++ 实现递归和栈逆序字符串的实例 递归函数调用模型 逆序方法 调用 以上就是C/C++ 实现递归和栈逆序字符串的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍c++中template对字符串的处理方法,包括了c++中template对字符串的处理方法的使用技巧和注意事项,需要的朋友参考一下 C++中的Template作用是把仅类型不同但功能相似的函数合并在一起,但是有时候template中的函数并不能满足所有的类型调用。如下所示: 所有的数字类型使用该模板都没有问题,但是string类型却不行,因为不支持有string到int的类型转换(
本文向大家介绍json字符串对象转换代码实例,包括了json字符串对象转换代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了json字符串对象转换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、将字符串转为json对象:JSON.parse(); 2、json对象转字符串:JSON.stringify(); 以上就是
本文向大家介绍C#简单实现发送socket字符串,包括了C#简单实现发送socket字符串的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#简单发送socket字符串的实现方法,供大家参考,具体内容如下 1 打开VS,新建一个C#窗口程序 2 添加按钮 3 写按钮的事件代码 双击这个按钮 进入代码界面 输入如下内容,注意IP和端口 如果你是复制的,会发现有标红的地方,这些需要使用u