前言:在實際開發過程中經常都要和Json打交道,序列化與反序列化就成了開發中必不可缺的技能。本篇博客就教大家如何進行Json序列化與反序列化。
首先要添加引用NuGet包,Newtonsoft.Json,通過此工具可對Json對象進行序列化與反序列化。當然還可通過其它方式,這里的話只介紹這一種方法。
1.反序列化Json字符串
string str = "{\"success\":true,\"msg\":\"獲取成功\",\"data\":[{\"id\":0,\"Name\":\"is C#\",\"Number\":\"A-001\",\"Date\":\"2019-08-02\"},{\"id\":1,\"Name\":\"is Golang\",\"Number\":\"A-002\",\"Date\":\"2019-08-03\"},{\"id\":2,\"Name\":\"is Java\",\"Number\":\"A-003\",\"Date\":\"2019-08-04\"}]}";
我們可以對這個Json字符串進行刨析,從而建立類。
如果想更清晰的看清這個Json對象的結構,可將這個Json字符串復制出來,在搜索引擎中輸入Json
隨便選擇任何一個,將上面那個Json字符串輸入進去,它的結構便一目了然
話不多說,建立兩個類 Message、Datas
public class Message { public bool success { get; set; } public string msg { get; set; } public List<Datas> data { get; set; } }
public class Datas { public int id { get; set; } public string Name { get; set; } public string Number { get; set; } public string Date { get; set; } }
關鍵代碼:
Message message = JsonConvert.DeserializeObject<Message>(str);
我們可以查看它的詳細信息
右鍵點擊message,選擇快速監視
此時反序列化已經成功,
2.序列化對象
我們可就Datas類作為序列化的對象
Datas datas = new Datas(); datas.id = 1001; datas.Name = "Object"; datas.Number = "9527"; datas.Date = "2019-07-31";
關鍵代碼: string Serializedata = JsonConvert.SerializeObject(datas);
文本可視化工具查看Serializedata對象:
3.也可對集合進行序列化與反序列化
var DataList = new List<Datas>(); DataList.Add(new Datas { id = 1, Name = "aggregate", Number = "A1", Date = "2019-08-01" }); //序列化 string SerializeDataList = JsonConvert.SerializeObject(DataList);
文本可視化工具查看SerializeDataList對象:
反序列化實體對象集合:
//反序列化實體對象集合 string Data = "[{\"id\":0,\"Name\":\"is C#\",\"Number\":\"A-001\",\"Date\":\"2019-08-02\"},{\"id\":1,\"Name\":\"is Golang\",\"Number\":\"A-002\",\"Date\":\"2019-08-03\"},{\"id\":2,\"Name\":\"is Java\",\"Number\":\"A-003\",\"Date\":\"2019-08-04\"}]"; var DeserializeData = JsonConvert.DeserializeObject<List<Datas>>(Data);
可查看DeserializeData對象其詳細信息:
Ok!搞定、
上面我只是列舉了一些簡單例子,具體的以實際開發為主、