C#對Json資料進行序列化
阿新 • • 發佈:2018-11-10
json格式:我們常見的josn格式資料字串有一般都是一對大括號({}),或者兩對大括號的。下面就這2種常見的json格式的資料介紹一些對json格式的操作。
先了解下,我說的2種json格式:
第一種格式有一對大括號的:
第二種有兩對大括號的:
{ \"code\":\"200\", \"msg\":\"支付寶預下單成功\", \"body\": { \"jobId\":\"20180906050141424500011624\", \"payUrl\":\"https://qr.ki/bax05439y7dkunnvqagki\", \"payFlowNumber\":\"20180906050141424500011624\" } }
想必大家也都熟悉上面的兩種json格式的資料,一對大括號的比較好處理,我就說下第二種格式的json資料字串處理。
第一步:在C#中,想要對json格式的字串進行處理,一定要先下載NuGet包
第二步:進行下載並安裝NuGet包
第三步:進行using引用:
第四步:開始寫程式碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace josn序列化 { class Program { static void Main(string[] args) { string strJosn = "{\"code\":\"200\",\"msg\":\"支付寶預下單成功\",\"body\":{\"jobId\":\"20180906050141424500011624\",\"payUrl\":\"https://qr.ki/bax05439y7dkunnvqagki\",\"payFlowNumber\":\"20180906050141424500011624\"}}"; JObject obj = (JObject)JsonConvert.DeserializeObject(strJosn); //序列化(也可使用JToken代替JObject) //JsonConvert與JObject必須引用using Newtonsoft.Json.Linq;這個名稱空間 string body = obj["body"].ToString();//得到strJosn裡body的資料 Console.WriteLine("把整個字串進行序列化:"); Console.WriteLine(obj); JObject bodyContent = (JObject)JsonConvert.DeserializeObject(body); //對body裡的資料進行序列化 Console.WriteLine("把body裡的資料進行序列化:"); Console.WriteLine(bodyContent); Pay pCode = new Pay();//建立物件 pCode.code = obj["code"].ToString();//拿到json裡code的資料並且賦值給建立物件的code欄位 pCode.jobId = bodyContent["jobId"].ToString(); Console.WriteLine("拿到josn裡的Code值"+pCode.code); Console.Write("拿到body裡的jobId"+pCode.jobId); Console.Read(); } } }