c#处理Json数据的实例


  网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋友。

首先记录几个网址

http://json.codeplex.com/

http://www.json.org/json-zh.html

http://www.soaspx.com/dotnet/csharp/csharp_20100713_5052.html

http://www.soaspx.com/dotnet/csharp/csharp_20100713_5052.html

在线JSON代码检验、检验、美化、格式化工具:        http://tools.jb51.net/code/json

JSON在线格式化工具:                                       http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:                             http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:        http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:                                     http://tools.jb51.net/code/json_yasuo_trans

C语言风格/HTML/CSS/json代码格式化美化工具:    http://tools.jb51.net/code/ccode_html_css_json

代码示例:参考3.0ActiveX控件代码

1.简单的JSON操作

JSON格式:
{"result":"0","res_info":"ok","queryorder_info":"info"}
构建对象:  
public struct ToJsonMy
 {
    public string result { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。
    public string res_info { get; set; }
    public string queryorder_info { get; set; }   
 }
 1 转换过程:
 2 public static void JsonMy()
 3 {
 4     string json = Jsonstr("D:\\json\\jsonmy1.txt");         //Jsonstr函数读取json数据的文本txt                 
 5     JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
 6     ToJsonMy list = js.Deserialize(json);         //将json数据转化为对象类型并赋值给list
 7     string result = list.result;             
 8     string res_info = list.res_info;
 9     string queryorder_info = list.res_info;
10 }

2.C#处理包含对象的json数据

JSON数据:
{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":"ok"}}
构建对象:
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; }
}
转换过程:
public static void JsonMy2()
{
    string json = Jsonstr("D:\\json\\jsonmy2.txt");
    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
    ToJsonMy2 list = js.Deserialize(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;
}

3、C#处理包含对象、数组的json数据

{"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"}
  ]
  }
}
构建对象
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;//数组处理       
};
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; }
}
public static void JsonMy4()
{
    string json = Jsonstr("D:\\json\\jsonmy4.txt");
    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
    ToJsonMy3 list = js.Deserialize(json);    //将json数据转化为对象类型并赋值给list
    string result = list.result;     
    string res_info = list.res_info;
    string order_num = list.queryorder_info.order_num;
    List 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;
}

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back