C# Json之序列化与反序列化
Posted zhangnever
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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# Json之序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章