169it科技资讯


当前位置:  编程技术>.net/c#/asp.net

C#实现对Json字符串处理实例

    来源: 互联网  发布时间:2014-11-04

本文实例讲述了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#程序设计的学习有所帮助。


    
相关技术文章:
    ▪Winform实现抓取web页面内容的方法

     本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考。 具体实现代码如下: WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8); string htmlinfo = sr.ReadToEnd(); resStream.Close(); sr.Close(); 感兴趣的朋友可以测试运行或改进本文实例。希望本文所述对大家C#程序设计的学习有所帮助。 ......


    ▪Winform实现将网页生成图片的方法

     通常浏览器都有将网页生成图片的功能,本文实例讲述了Winform实现将网页生成图片的方法。分享给大家供大家参考。具体方法如下: 工具截图如下: 生成后的图片如下: 手动填写网站地址,可选择图片类型和保持图片地址,来生成页面的图片,当图片路径未选择时则保存桌面; 具体代码如下: 将html生成图片的类 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using System.......


    ▪C#控制台程序中处理2个关闭事件的代码实例

     应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。 处理方法 在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了。 不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件。 C#处理代码如下: 代码如下: static class Program {     public delegate bool ControlCtrl......


 
最新技术文章:
    ▪C#通过IComparable实现ListT.sort()排序

     本文实例讲述了C#通过IComparable实现ListT.sort()排序的方法,分享给大家供大家参考之用。具体方法如下: 通常来说,List<T>.sort()可以实现对T的排序,比如List<int>.sort()执行后集合会按照int从小到大排序。如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo方法来实现。流程如下: 一、第一步我们申明一个类Person但是要继承IComparable接口: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestIC......


    ▪C#实现对Json字符串处理实例

     本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下: 一般对于web应用开发人员来说对Json字符串都会很熟悉,其实在很多请求我们返回的都是Json字符串。那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSDN Library 链接:http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx];这个类提供了一个方法。 下面这个是在快递100往抓取的一个圆通的快递信息。对于我们有用的信息是快递时间,快递状况。那我该如何来做。  ......


    ▪Winform实现抓取web页面内容的方法

     本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考。 具体实现代码如下: WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8); string htmlinfo = sr.ReadToEnd(); resStream.Close(); sr.Close(); 感兴趣的朋友可以测试运行或改进本文实例。希望本文所述对大家C#程序设计的学习有所帮助。 ......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号