怎么做打鱼网站,建设网站策划案,wordpress如何建企业站,网站建设上传视频教程C#解析Json详解 文章目录 C#解析Json详解什么是Json#xff1f;Json的特点 常用的Json库Json.NET (Newtonsoft.Json)System.Text.Json 实例序列化反序列化 总结 什么是Json#xff1f;
JSON的全称是JavaScript Object Notation#xff0c;是一种轻量级的数据交换格式#…C#解析Json详解 文章目录 C#解析Json详解什么是JsonJson的特点 常用的Json库Json.NET (Newtonsoft.Json)System.Text.Json 实例序列化反序列化 总结 什么是Json
JSON的全称是JavaScript Object Notation是一种轻量级的数据交换格式主要用于数据的序列化和交互。常用于Web中其他领域也经常出现JSON的身影。
Json的特点
Json的最小单元式键值对即Key-Value组合。它的数据结构需要满足以下条件
由键值对组成每个键属性名都是一个字符串后面跟着一个值。值可以是字符串、数字、布尔值、对象、数组、null等。JSON对象是由一对大括号{}包围的键值对集合键和值之间用冒号 : 分隔。JSON数组是由一对方括号 [] 包围的值的有序列表值之间用逗号 , 分隔。
一个常规的Json如下所示
{name: xiaomai,age: 30,isStudent: false,hobbies: [basketball, swimming]
}注意在上面的示例中name就是一个属性或者是键后面跟一个:号xiaomai 则是值键值对必须成对出现键值对之间需要用,隔开。 字符串 JSON字符串必须用双引号 包围而不是单引号 。 数字 JSON支持整数和浮点数。 布尔值 JSON使用true和false表示布尔值。 null JSON使用null表示空值或缺失的值。 嵌套结构 JSON对象可以嵌套在其他JSON对象中形成复杂的数据结构。数组也可以包含其他JSON值包括对象和数组。
常用的Json库
在C#中我们可以用这几个常用的JSON解析库来处理JSON数据
Json.NET (Newtonsoft.Json)
Json.NET也称为Newtonsoft.Json是C#中最常用的JSON解析库广泛用于处理JSON数据。
它提供了丰富的功能包括对象序列化、反序列化、LINQ查询、处理嵌套对象和数组、自定义序列化、自定义命名策略等等。
它支持.NET框架和.NET Core并且在开发社区中有广泛的支持和文档。
可以通过以下指令在visual studio中安装也可以通过NuGet包管理器来安装
Install-Package Newtonsoft.JsonSystem.Text.Json
System.Text.Json是.NET Core 3.0及更高版本中引入的官方JSON库。
它提供了基本的JSON序列化和反序列化功能是.NET Core的一部分无需额外安装。
由于是官方支持的库因此在.NET Core应用中使用时它具有性能和可移植性方面的优势。 安装方式 System.Text.Json是.NET Core的一部分不需要额外的安装。
实例
本文主要介绍Json.NET 的使用以及操作
序列化
序列化就是将对象转换为JSON字符串 下面我们创建了一个Person对象然后使用JsonConvert.SerializeObject将其序列化为JSON字符串。
using Newtonsoft.Json;
using System;namespace JsonSerializationExample
{class Program{static void Main(string[] args){// 创建一个C#对象Person person new Person{Name John,Age 30,City New York};// 将对象序列化为JSON字符串string json JsonConvert.SerializeObject(person);Console.WriteLine(json);}}public class Person{public string Name { get; set; }public int Age { get; set; }public string City { get; set; }}
}
反序列化
反序列化就是将JSON字符串转换为对象使用JsonConvert.DeserializeObject方法将JSON字符串反序列化为C#对象
using Newtonsoft.Json;
using System;namespace JsonDeserializationExample
{class Program{static void Main(string[] args){// JSON字符串示例string json {\Name\:\Alice\,\Age\:25,\City\:\Los Angeles\};// 将JSON字符串反序列化为C#对象Person person JsonConvert.DeserializeObjectPerson(json);// 访问反序列化后的对象属性Console.WriteLine($Name: {person.Name});Console.WriteLine($Age: {person.Age});Console.WriteLine($City: {person.City});}}public class Person{public string Name { get; set; }public int Age { get; set; }public string City { get; set; }}
}
总结
本文主要介绍了C#对JSON的简单操作作者能力有限文章中难免存在错误和纰漏请指正如果文章帮到了你请帮忙点赞三连支持。