1. 程式人生 > WINDOWS開發 >C#常用方法——JObject解析json物件

C#常用方法——JObject解析json物件

1、簡單的json物件解析

{
"shp_flg": "0","fm_date": "2018-04-18T00:00:00Z","to_date": "2018-04-18T00:00:00Z","emp_no": "008","emp_nme_en": "Visitor 6","shift": "事假","work_time": 35,"remark": "xyz"
}
JObject jo = JObject.Parse(paramsStr);    //paramsStr - json字串名字
//下面是各種不同寫法,但是結果一樣
string shp_flg = jo.["shp_flg"].ToString();
string
fm_date = jo.["fm_date"].ToString("yyyy-MM-dd"); string to_date = jo.Value<DateTime>("to_date").ToString("yyyy-MM-dd"); string emp_no = jo.["emp_no"].ToString(); string shift = jo.Value<string>("shift"); int work_time = jo.Value<int>("work_time"); string remark = jo.Value<string
>("remark");

2、巢狀後的json物件

 1 json 格式的字串解析 格式化
 2 {
 3    "input": {
 4        "size": 193156, 5        "type": "image/png"
 6    }, 7    "output": {
 8        "size": 59646, 9        "type": "image/png",10        "width": 487,11        "height": 284,12        "ratio": 0.3088,13        "url": "https://api.tinify.com/output/hrqtghqtv0ab4qgv.png
" 14 } 15 } 16 17 // json解析 巢狀格式 18 Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); 19 20 decimal input_size = Convert.ToDecimal(jobject["input"]["size"]);//193156,輸入圖片大小 21 string input_type = jobject["input"]["type"].ToString();// "image/png",輸入圖片型別 22 decimal output_size = Convert.ToDecimal(jobject["output"]["size"]);// 59646,圖片大小 23 string output_type = jobject["output"]["type"].ToString();//"image/png",圖片型別 24 string output_width = jobject["output"]["width"].ToString();//487,寬度 25 string output_height = jobject["output"]["height"].ToString();//284,高度 26 string output_ratio = jobject["output"]["ratio"].ToString();//0.3088,壓縮率=Convert.ToString((1-0.3088)*100)+"%"; 27 string output_url = jobject["output"]["url"].ToString();//"https://api.tinify.com/output/hrqtghqtv0ab4qgv.png" 28 29 30 WebEnh.Core.Net.HttpProc.WebClient wc = new WebEnh.Core.Net.HttpProc.WebClient(); 31 wc.DownloadFile(output_url,download_filename);