C# Json之序列化與反序列化

前言:在實際開發過程中經常都要和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!搞定、

上面我只是列舉了一些簡單例子,具體的以實際開發爲主、

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章