当前位置: 首页 > news >正文

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

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

1. 安装 Newtonsoft.Json

如果你使用的是 Visual Studio,可以通过 NuGet 包管理器来安装 Newtonsoft.Json。在“工具” -> “NuGet 包管理器” -> “管理解决方案的 NuGet 程序包”中搜索 Newtonsoft.Json 并安装。

如果你使用的是 .NET CLI,可以在项目目录下运行以下命令进行安装:

dotnet add package Newtonsoft.Json

2. 序列化对象

序列化是将对象转换为 JSON 字符串的过程。以下是一个示例,展示了如何序列化一个简单的对象:

using Newtonsoft.Json;
using System;

// 定义一个简单的类
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个 Person 对象
        Person person = new Person
        {
            Name = "John Doe",
            Age = 30
        };

        // 序列化对象为 JSON 字符串
        string json = JsonConvert.SerializeObject(person);

        // 输出 JSON 字符串
        Console.WriteLine(json);
    }
}

在上述代码中,我们首先定义了一个 Person 类,包含 NameAge 两个属性。然后创建了一个 Person 对象,并使用 JsonConvert.SerializeObject 方法将其序列化为 JSON 字符串。最后,将该 JSON 字符串输出到控制台。

3. 反序列化对象

反序列化是将 JSON 字符串转换为对象的过程。以下是一个示例,展示了如何反序列化 JSON 字符串为对象:

using Newtonsoft.Json;
using System;

// 定义一个简单的类
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 定义一个 JSON 字符串
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";

        // 反序列化 JSON 字符串为 Person 对象
        Person person = JsonConvert.DeserializeObject<Person>(json);

        // 输出对象的属性
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

在上述代码中,我们定义了一个 JSON 字符串,然后使用 JsonConvert.DeserializeObject<Person> 方法将其反序列化为 Person 对象。最后,输出该对象的属性。

4. 处理复杂对象和集合

Newtonsoft.Json 也可以处理复杂对象和集合的序列化和反序列化。以下是一个示例,展示了如何处理包含集合的对象:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

// 定义一个简单的类
public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
}

// 定义一个包含集合的类
public class Library
{
    public string Name { get; set; }
    public List<Book> Books { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个 Library 对象
        Library library = new Library
        {
            Name = "My Library",
            Books = new List<Book>
            {
                new Book { Title = "Book 1", Author = "Author 1" },
                new Book { Title = "Book 2", Author = "Author 2" }
            }
        };

        // 序列化对象为 JSON 字符串
        string json = JsonConvert.SerializeObject(library);

        // 输出 JSON 字符串
        Console.WriteLine(json);

        // 反序列化 JSON 字符串为 Library 对象
        Library deserializedLibrary = JsonConvert.DeserializeObject<Library>(json);

        // 输出对象的属性
        Console.WriteLine($"Library Name: {deserializedLibrary.Name}");
        foreach (var book in deserializedLibrary.Books)
        {
            Console.WriteLine($"Title: {book.Title}, Author: {book.Author}");
        }
    }
}

在上述代码中,我们定义了一个 Book 类和一个包含 Book 集合的 Library 类。然后创建了一个 Library 对象,并将其序列化为 JSON 字符串。接着,将该 JSON 字符串反序列化为 Library 对象,并输出其属性。

通过以上示例,你可以看到 Newtonsoft.Json 提供了简单而强大的功能来进行对象的序列化和反序列化。

相关文章:

  • 网站建设的栏目内容是搜索引擎优化心得体会
  • 个人网站备案通过做淘客产品营销推广
  • 汽车类网站搭建营销推广文案
  • 中国教学网站十大最免费软件排行榜
  • 做的最好的相亲网站怎么创作自己的网站
  • 银行虚拟网站制作百度一下知道官网
  • 冒泡排序算法优化
  • Spring Security是什么?如何使用Spring Security进行安全控制?
  • 如何查看react的版本号
  • 计算机网络 第一章 概述(Overview)
  • 《机器学习数学基础》补充资料:矩阵的LU分解
  • 【解决】OnTriggerEnter/OnTriggerExit 调用匿名委托误区的问题
  • Wireshark:自定义类型帧解析
  • el-switch切换之前二次确认
  • HarmonyOS NEXT组件深度全解:十大核心组件开发指南与实战
  • 三个小时学完vue3 —— 简单案例(二)
  • 力扣 划分字母区间
  • linux有哪些常用命令?
  • 华为在不同发展时期的战略选择(节选)
  • 达梦数据库系列之安装及Mysql数据迁移
  • Spring 集成 MyBatis 操作指南(详细实例)
  • 数据结构:树的概念
  • React Router 完全指南:从基础到高级实践
  • 数据基础4: 线性代数基础行列式(矩阵)
  • ctfshow——域名TXT记录泄露
  • React状态管理进阶(四):从Redux到原子革命的终极指南