C#处理JSON 数据
生活随笔
收集整理的這篇文章主要介紹了
C#处理JSON 数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網絡中數據傳輸經常是xml或者json,現在做的一個項目之前調其他系統接口都是返回的xml格式,剛剛遇到一個返回json格式數據的接口,通過例子由易到難總結一下處理過程,希望能幫到和我一樣開始不會的朋友。
一、C#處理簡單json數據
json數據:
我這里是以jsonmy1.txt文件的形式保存在d盤json文件夾下。
構造對象:
二、C#處理包含對象的json數據
json數據:jsonmy2.txt
構造對象:
轉換過程:
public static void JsonMy2() {string json = Jsonstr("D:\\json\\jsonmy2.txt");JavaScriptSerializer js = new JavaScriptSerializer(); //實例化一個能夠序列化數據的類ToJsonMy2 list = js.Deserialize<ToJsonMy2>(json); //將json數據轉化為對象類型并賦值給liststring result = list.result; string res_info = list.res_info;string order_num = list.queryorder_info.order_num;string orderdetail = list.queryorder_info.orderdetail; }三、C#處理包含對象、數組的json數據
json數據:jsonmy4.txt
構造對象:
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> 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<ToJsonMy3>(json); //將json數據轉化為對象類型并賦值給liststring result = list.result; string res_info = list.res_info;string order_num = list.queryorder_info.order_num;List<orderdetail> 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; }以上代碼來自:http://www.jb51.net/article/48027.htm
在項目中也遇到了使用JSON的情況,就把轉化過程寫一下。
1.從數據庫獲取的json數據為:
[{"ACTIONVALUE":"-1","CONTENT":"","DEVID":"30000449636001","DEVNAME":"#1空調","DEVTYPE":"46","EVENTTYPE":"","GRIDCODE":"","ISAUTO":"false","MEASURENAME":"通用.低風","MEASURETAG":"GEN.CtrlLowWind","STREAMTYPE":null,"TIMESPAN":""},{"ACTIONVALUE":"0","CONTENT":"","DEVID":"30000449660712","DEVNAME":"#1風機","DEVTYPE":"56","EVENTTYPE":"","GRIDCODE":"","ISAUTO":"false","MEASURENAME":"風機開關","MEASURETAG":"GEN.UnibitCtrl","STREAMTYPE":null,"TIMESPAN":""},{"ACTIONVALUE":"1","CONTENT":"","DEVID":"30000449660710","DEVNAME":"#1警笛","DEVTYPE":"57","EVENTTYPE":"","GRIDCODE":"","ISAUTO":"false","MEASURENAME":"警笛開關","MEASURETAG":"GEN.UnibitCtrl","STREAMTYPE":null,"TIMESPAN":""},{"ACTIONVALUE":"1","CONTENT":"","DEVID":"30000449660708","DEVNAME":"#1燈光","DEVTYPE":"45","EVENTTYPE":"","GRIDCODE":"","ISAUTO":"true","MEASURENAME":"燈光開光","MEASURETAG":"GEN.UnibitCtrl","STREAMTYPE":null,"TIMESPAN":""},{"ACTIONVALUE":"66","CONTENT":"","DEVID":"30000449667767","DEVNAME":"hik1","DEVTYPE":"49","EVENTTYPE":"","GRIDCODE":"110100000103010001","ISAUTO":"true","MEASURENAME":"","MEASURETAG":"GEN.PreSet","STREAMTYPE":"150","TIMESPAN":""},{"ACTIONVALUE":"-1","CONTENT":"","DEVID":"30000449667767","DEVNAME":"hik1","DEVTYPE":"49","EVENTTYPE":"","GRIDCODE":"110100000103010001","ISAUTO":"true","MEASURENAME":"","MEASURETAG":"GEN.VideoRecord","STREAMTYPE":"150","TIMESPAN":""}]2.構造實體對象:
public class ActionParam{//[{"ACTIONVALUE":"1","CONTENT":"","DEVID":"30000449660708","DEVNAME":"#1燈光","DEVTYPE":"45","EVENTTYPE":"","GRIDCODE":"","ISAUTO":"true","MEASURENAME":"燈光開光","MEASURETAG":"GEN.UnibitCtrl","STREAMTYPE":null,"TIMESPAN":""}]public int ACTIONVALUE { get; set; }public string CONTENT { get; set; }public string DEVID { get; set; }public string DEVNAME { get; set; }public string DEVTYPE { get; set; }public string EVENTTYPE { get; set; }public string GRIDCODE { get; set; }public bool ISAUTO { get; set; }public string MEASURENAME { get; set; }public string MEASURETAG { get; set; }public string STREAMTYPE { get; set; }public string TIMESPAN { get; set; }}3.轉化為C#中聲明的數據格式:
JavaScriptSerializer js = new JavaScriptSerializer(); //實例化一個能夠序列化數據的類List<ActionParam> listDetail = js.Deserialize<List<ActionParam>>(actionParam);以為json字符串是數組格式,所以js.Deserialize<T>()泛型中使用List<ActionParam>.
?
轉載于:https://www.cnblogs.com/zhangyuanbo12358/p/5590194.html
總結
以上是生活随笔為你收集整理的C#处理JSON 数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 清屏_Python学前准备
- 下一篇: C# base和this