C# 使用 Newtonsoft.Json 序列化和反序列化对象实例

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

Newtonsoft.Json(也被称为 Json.NET)是一个广泛使用的用于在 C# 中进行 JSON 序列化和反序列化的开源库。下面将具体先容如何使用它来序列化和反序列化对象。
1. 安装 Newtonsoft.Json

如果你使用的是 Visual Studio,可以通过 NuGet 包管理器来安装 Newtonsoft.Json。在“工具” -> “NuGet 包管理器” -> “管明白决方案的 NuGet 步伐包”中搜索 Newtonsoft.Json 并安装。
如果你使用的是 .NET CLI,可以在项目目录下运行以下命令进行安装:
  1. dotnet add package Newtonsoft.Json
复制代码
2. 序列化对象

序列化是将对象转换为 JSON 字符串的过程。以下是一个示例,展示了如何序列化一个简朴的对象:
  1. using Newtonsoft.Json;
  2. using System;
  3. // 定义一个简单的类
  4. public class Person
  5. {
  6.     public string Name { get; set; }
  7.     public int Age { get; set; }
  8. }
  9. class Program
  10. {
  11.     static void Main()
  12.     {
  13.         // 创建一个 Person 对象
  14.         Person person = new Person
  15.         {
  16.             Name = "John Doe",
  17.             Age = 30
  18.         };
  19.         // 序列化对象为 JSON 字符串
  20.         string json = JsonConvert.SerializeObject(person);
  21.         // 输出 JSON 字符串
  22.         Console.WriteLine(json);
  23.     }
  24. }
复制代码
在上述代码中,我们首先定义了一个 Person 类,包含 Name 和 Age 两个属性。然后创建了一个 Person 对象,并使用 JsonConvert.SerializeObject 方法将其序列化为 JSON 字符串。最后,将该 JSON 字符串输出到控制台。
3. 反序列化对象

反序列化是将 JSON 字符串转换为对象的过程。以下是一个示例,展示了如何反序列化 JSON 字符串为对象:
  1. using Newtonsoft.Json;
  2. using System;
  3. // 定义一个简单的类
  4. public class Person
  5. {
  6.     public string Name { get; set; }
  7.     public int Age { get; set; }
  8. }
  9. class Program
  10. {
  11.     static void Main()
  12.     {
  13.         // 定义一个 JSON 字符串
  14.         string json = "{"Name":"John Doe","Age":30}";
  15.         // 反序列化 JSON 字符串为 Person 对象
  16.         Person person = JsonConvert.DeserializeObject<Person>(json);
  17.         // 输出对象的属性
  18.         Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
  19.     }
  20. }
复制代码
在上述代码中,我们定义了一个 JSON 字符串,然后使用 JsonConvert.DeserializeObject<erson> 方法将其反序列化为 Person 对象。最后,输出该对象的属性。
4. 处理惩罚复杂对象和集合

Newtonsoft.Json 也可以处理惩罚复杂对象和集合的序列化和反序列化。以下是一个示例,展示了如那边理惩罚包含集合的对象:
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. // 定义一个简单的类
  5. public class Book
  6. {
  7.     public string Title { get; set; }
  8.     public string Author { get; set; }
  9. }
  10. // 定义一个包含集合的类
  11. public class Library
  12. {
  13.     public string Name { get; set; }
  14.     public List<Book> Books { get; set; }
  15. }
  16. class Program
  17. {
  18.     static void Main()
  19.     {
  20.         // 创建一个 Library 对象
  21.         Library library = new Library
  22.         {
  23.             Name = "My Library",
  24.             Books = new List<Book>
  25.             {
  26.                 new Book { Title = "Book 1", Author = "Author 1" },
  27.                 new Book { Title = "Book 2", Author = "Author 2" }
  28.             }
  29.         };
  30.         // 序列化对象为 JSON 字符串
  31.         string json = JsonConvert.SerializeObject(library);
  32.         // 输出 JSON 字符串
  33.         Console.WriteLine(json);
  34.         // 反序列化 JSON 字符串为 Library 对象
  35.         Library deserializedLibrary = JsonConvert.DeserializeObject<Library>(json);
  36.         // 输出对象的属性
  37.         Console.WriteLine($"Library Name: {deserializedLibrary.Name}");
  38.         foreach (var book in deserializedLibrary.Books)
  39.         {
  40.             Console.WriteLine($"Title: {book.Title}, Author: {book.Author}");
  41.         }
  42.     }
  43. }
复制代码
在上述代码中,我们定义了一个 Book 类和一个包含 Book 集合的 Library 类。然后创建了一个 Library 对象,并将其序列化为 JSON 字符串。接着,将该 JSON 字符串反序列化为 Library 对象,并输出其属性。
通过以上示例,你可以看到 Newtonsoft.Json 提供了简朴而强大的功能来进行对象的序列化和反序列化。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表