前言:在实际开发过程中经常都要和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

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

随便选择任何一个,将上面那个Json字符串输入进去,它的结构便一目了然

C# 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,选择快速监视

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

此时反序列化已经成功,

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

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对象:

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

 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对象:

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

 反序列化实体对象集合:

  //反序列化实体对象集合
            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对象其详细信息:

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

Ok!搞定、

上面我只是列举了一些简单例子,具体的以实际开发为主、

 

相关文章:

  • 2021-10-19
  • 2021-10-29
  • 2022-02-13
  • 2021-12-26
猜你喜欢
  • 2021-04-08
  • 2022-02-21
  • 2019-03-22
  • 2022-12-23
  • 2022-02-19
  • 2022-12-23
  • 2021-05-21
相关资源
相似解决方案