代码改变世界

c# josn序列化,反序列化的例子

  钟铧若岩  阅读(10)  评论(0编辑  收藏  举报
在 C# 中,常见的 JSON 序列化和反序列化方式可以借助不同的库来实现,下面为你分别介绍使用 System.Text.Json 和 Newtonsoft.JsonJson.NET)这两个库的具体示例。

1. 使用 System.Text.Json


System.Text.Json 是.NET Core 3.0 及更高版本中内置的 JSON 处理库,它性能出色且使用方便。

示例代码

复制代码
using System;
using System.Text.Json;

// 定义一个用于序列化和反序列化的类
public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Year { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个 Book 对象
        Book book = new Book
        {
            Title = "C# Programming",
            Author = "John Doe",
            Year = 2023
        };

        // 序列化对象为 JSON 字符串
        string jsonString = JsonSerializer.Serialize(book);
        Console.WriteLine("序列化后的 JSON 字符串:");
        Console.WriteLine(jsonString);

        // 反序列化 JSON 字符串为对象
        Book deserializedBook = JsonSerializer.Deserialize<Book>(jsonString);
        Console.WriteLine("\n反序列化后的对象信息:");
        Console.WriteLine($"Title: {deserializedBook.Title}");
        Console.WriteLine($"Author: {deserializedBook.Author}");
        Console.WriteLine($"Year: {deserializedBook.Year}");
    }
}
复制代码

代码解释

 

  • 定义类:定义了 Book 类,包含 TitleAuthor 和 Year 三个属性。
  • 序列化:使用 JsonSerializer.Serialize 方法将 Book 对象转换为 JSON 字符串。
  • 反序列化:使用 JsonSerializer.Deserialize<T> 方法将 JSON 字符串转换回 Book 对象,其中 T 为目标对象的类型。

2. 使用 Newtonsoft.JsonJson.NET

 

Newtonsoft.Json 是一个功能强大且广泛使用的第三方 JSON 处理库,支持多种特性和自定义配置。

示例代码

复制代码
using Newtonsoft.Json;
using System;

// 定义一个用于序列化和反序列化的类
public class Movie
{
    public string Name { get; set; }
    public string Director { get; set; }
    public int ReleaseYear { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个 Movie 对象
        Movie movie = new Movie
        {
            Name = "The Dark Knight",
            Director = "Christopher Nolan",
            ReleaseYear = 2008
        };

        // 序列化对象为 JSON 字符串
        string json = JsonConvert.SerializeObject(movie);
        Console.WriteLine("序列化后的 JSON 字符串:");
        Console.WriteLine(json);

        // 反序列化 JSON 字符串为对象
        Movie deserializedMovie = JsonConvert.DeserializeObject<Movie>(json);
        Console.WriteLine("\n反序列化后的对象信息:");
        Console.WriteLine($"Name: {deserializedMovie.Name}");
        Console.WriteLine($"Director: {deserializedMovie.Director}");
        Console.WriteLine($"ReleaseYear: {deserializedMovie.ReleaseYear}");
    }
}
复制代码

代码解释

 

  • 安装依赖:在使用 Newtonsoft.Json 之前,需要通过 NuGet 包管理器安装 Newtonsoft.Json 包。
  • 定义类:定义了 Movie 类,包含 NameDirector 和 ReleaseYear 三个属性。
  • 序列化:使用 JsonConvert.SerializeObject 方法将 Movie 对象转换为 JSON 字符串。
  • 反序列化:使用 JsonConvert.DeserializeObject<T> 方法将 JSON 字符串转换回 Movie 对象,其中 T 为目标对象的类型。

总结

 

    • System.Text.Json 是.NET 内置的 JSON 处理库,性能较好,适合在.NET Core 3.0 及更高版本的项目中使用。
    • Newtonsoft.Json 功能丰富,社区支持广泛,在老项目或者需要更多自定义配置的场景中使用较多。



相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示