c#开发中使用Newtonsoft.Json反序列化数组求解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#开发中使用Newtonsoft.Json反序列化数组求解?相关的知识,希望对你有一定的参考价值。

数组是这样["id":1,"yzm":97873760,"suoid":3,"jw":201801,"zta":0,"ztb":0,"csuo":"id":3,"a1":145,"a2":154,"a3":138,"c1":1,"c2":3,"d1":17,"f1":153]怎能序列化

参考技术A public class DataUser public string changeCode get; set; public string orderDesc get; set; public string orderNo get; set; public long time get; set; public string transactionId get; set; //用这个类反序列化 public class Order public DataUser datauser get; set; public string notifyType get; set; public string sign get; set; public string version get; set;

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!搞定、

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

 

以上是关于c#开发中使用Newtonsoft.Json反序列化数组求解?的主要内容,如果未能解决你的问题,请参考以下文章

unity C#中使用Newtonsoft.Json进行字符串的序列化和反序列化简易教程

unity C#中使用Newtonsoft.Json进行字符串的序列化和反序列化简易教程

unity C#中使用Newtonsoft.Json进行字符串的序列化和反序列化简易教程

C# Newtonsoft.Json 解析多嵌套json 进行反序列化

使用 Newtonsoft JSON 反序列化十六进制值

C# Newtonsoft.Json 解析多嵌套json 进行反序列化