前言:在实际开发过程中经常都要和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 = ;
datas.Name = "Object";
datas.Number = "";
datas.Date = "2019-07-31";
关键代码:
string Serializedata = JsonConvert.SerializeObject(datas);

文本可视化工具查看Serializedata对象:

3.也可对集合进行序列化与反序列化

var DataList = new List<Datas>();
DataList.Add(new Datas
{
id = ,
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之序列化与反序列化的更多相关文章

  1. [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化

    [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...

  2. C#中的Json的序列化和反序列化

    Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...

  3. Json的序列化与反序列化

    对于Json的序列化和反序列化,如果自己编写源代码来实现的话,很复杂很烦,所以我采用的是使用别人已经写好的引用文件.这类文件网上有很多,我用的是LitJson,当然Newtonsoft也可以,但后者需 ...

  4. Newtonsoft.Json 的序列化与反序列化

    首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一 ...

  5. ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化

    首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...

  6. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  7. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

  8. C# JSON字符串序列化与反序列化

    JSON与c#对象转换http://hi.baidu.com/donick/item/4d741338870c91fe97f88d33 C# JSON字符串序列化与反序列化 – http://www. ...

  9. ASP.NET 中JSON 的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  10. 【转】Newtonsoft.Json 的序列化与反序列化

    http://www.cnblogs.com/08shiyan/p/3464028.html 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Fr ...

随机推荐

  1. Tomcat 的单机多实例配置

    有时候需要在一个服务器上部署多个Tomcat,通过不同的端口进行区分,比如,反向代理.但是不想简单的通过复制Tomcat来实现,这样既不方便以后的升级也不方便管理,那么这时候就需要配置Tomcat的单 ...

  2. 【阿里云IoT+YF3300】6.物联网设备报警配置

    纵然5G时代已经在时代的浪潮中展现出了它的身影,但是就目前的物联网环境中,网络问题仍旧是一个比较突出的硬伤.众所周知,在当前的物联网规划中,与其说是实现万物互联,倒不如说是行业指标数据监控.对于一些特 ...

  3. java学习1-初始java程序

    # 第一个简单示例 public class Hello { public static void main(String[] args) { System.out.println("Hel ...

  4. ESP8266开发之旅 网络篇⑤ Scan WiFi——ESP8266WiFiScan库的使用

    1. 前言     现在,通常,为了让手机连上一个WiFi热点,基本上都是打开手机设置里面的WiFi设置功能,然后会看到里面有个WiFi热点列表,然后选择你要的连接上. 基本上你只要打开手机连接WiF ...

  5. solr学习篇(三) solr7.4 连接MySQL数据库

    目录 导入相关jar包 配置连接信息 将数据库导入到solr中 验证是否成功 创建一个Core,创建Core的方法之前已经很详细的讲解过了,如果还是不清楚请参考 solr7.4 安装配置篇: 1.导入 ...

  6. Spring Cloud 网关服务 zuul 三 动态路由

    zuul动态路由 网关服务是流量的唯一入口.不能随便停服务.所以动态路由就显得尤为必要. 数据库动态路由基于事件刷新机制热修改zuul的路由属性. DiscoveryClientRouteLocato ...

  7. Solr入门(一)

    一丶Solr入门1.Solr的启动Solr各版本下载老版本的时候,需要将war包放到tomcat中,现在只需解压,由于自带jetty容器,可以直接启动 [root@aaa bin]# ./solr s ...

  8. BOOL,int,float,指针变量 与“零值”比较的if语句

    分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var) 解答: BOOL型变量:if(!var) int型变量: if(var==0) float型变量: ...

  9. 【IntelliJ IDEA】Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA 解决办法

    笔者打开IntelliJ IDEA敲代码的时候遇到了如下问题: IDEA Event Log窗口提示 Unable to save settings: Failed to save settings. ...

  10. 解决SAP740 GUI 搜索帮助(F4)回填值乱码的问题

    SAP 740客户端引入了搜索帮助增强功能,并且默认是开启该功能的,在带有F4搜索帮助的字段输入框中输入字段的前两个字符,可以自动以下拉框的方式带出包含包含所输入字符的条目,从而实现快速的输入帮助,如 ...