IRONSOFTWAREHOME
开发者更新

C# Json 序列化(开发者如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月21日

在现代软件开发领域,数据交换格式在实现不同系统之间的通信中起着至关重要的作用。 其中一种获得广泛流行的格式是JSON(JavaScript对象表示法)。

C# 开发者经常发现自己需要处理 JSON 数据,为了便于顺畅的交互,C# 提供了一个强大的工具 - C# JSON 序列化器。

在本文中,我们将讨论什么是JSON序列化及其用途。 此外,我们将通过使用IronPDF PDF库的示例来理解JSON序列化过程。

1. 理解C# JSON序列化器

C# JSON序列化器是一个将C#对象转换为其JSON表示形式并反之亦然的组件。 这种过程称为序列化和反序列化,是C#应用程序与外部系统或服务之间交换数据时必不可少的。

考虑一种电子商务应用程序需要将产品信息发送到移动应用程序的场景。与其发送移动应用可能无法理解的原始C#对象,应用程序可以使用JSON序列化器将对象转换为一种普遍认可且易于各种平台使用的JSON格式。

1.1. C# JSON序列化示例

让我们深入了解一个简单的例子来说明这个概念。 假设我们有一个代表人的C#类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

使用C# JSON序列化,我们可以将这个类的一个实例转换为JSON字符串:

Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);

生成的JSON字符串将是**{"Name":"John Doe","Age":30}**,表示为JSON格式的人对象。

2. C# JSON序列化器的类型及代码示例

C#提供了多种执行JSON序列化的方法,每种方法都有其自己的特性和使用案例。 以下是C#中一些常用的JSON序列化方法:

2.1. DataContractJsonSerializer

此序列化工具是System.Runtime.Serialization.Json命名空间的一部分,使用数据契约属性来控制序列化过程。

using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        using (MemoryStream stream = new MemoryStream())
        {
            serializer.WriteObject(stream, person);
            string json = Encoding.UTF8.GetString(stream.ToArray());
            Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
            Console.WriteLine(json);
        }
    }
}

2.2. JavaScriptSerializer

位于System.Web.Script.Serialization命名空间中的此序列化工具是ASP.NET的一部分,提供了一种将对象序列化为JSON格式的简单方法。

using System;
using System.Web.Script.Serialization;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}

2.3. Json.NET (Newtonsoft.Json)

Json.NET (Newtonsoft.Json)是C#中广泛使用的第三方JSON序列化库。 它提供了灵活性、性能和丰富的功能。

using System;
using Newtonsoft.Json;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}

3. 何时使用C# JSON序列化器

知道何时使用C# JSON序列化对于高效且无错误的数据交换至关重要。 以下是使用JSON序列化器的常见场景:

3.1. Web API

在开发与客户端应用程序通信的Web API时,JSON是数据交换的首选格式,因为它轻量且易于人类读取。

3.2. 配置设置

以JSON格式存储和读取配置设置是一种常见的做法。JSON序列化简化了在C#对象和JSON之间转换这些设置的过程。

3.3. 互操作性

在与其他语言开发的系统集成C#应用程序时,JSON提供了一种与语言无关的数据格式,确保无缝的互操作性。

4. 什么是反序列化的JSON字符串?

反序列化是将JSON字符串转换回其等效C#对象的过程。 当处理从外部来源接收的数据时(如Web API或存储的JSON数据),这是一项关键步骤。

在C#中,常用的序列化器通常也可用于反序列化。 让我们通过使用Json.NET (Newtonsoft.Json) 的一个简单示例来说明反序列化:

using System;
using Newtonsoft.Json;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}

5. 在C#中引入IronPDF

现在我们已经很好地理解了C# JSON序列化,让我们探索IronPDF C#库的集成,这是一款处理PDF的强大库。 IronPDF简化了生成和操作PDF文档的过程,是涉及PDF场景的绝佳选择。

5.1. IronPDF概览

IronPDF是一个C#库,允许开发人员在其应用程序内创建、操作和渲染PDF文档。 无论您需要生成发票、报告或任何其他类型的PDF文档,IronPDF都提供了一种便捷且功能丰富的解决方案。

IronPDF的HTML到PDF转换功能是一大亮点,保持您的布局和样式。 它将网页内容变为PDF,以便用于报告、发票和文档。 您可以轻松地将HTML文件、URL和HTML字符串转换为PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert an HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert an HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert a URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

要开始使用IronPDF,您首先需要安装IronPDF NuGet包:

PM > Install-Package IronPdf

安装后,您可以使用IronPDF库在您的C#应用程序中执行各种PDF相关任务。

5.2. 将C# JSON序列化器与IronPDF代码结合使用

现在,让我们探索一个如何将C# JSON序列化无缝集成到IronPDF中的实际示例。 考虑一个场景,您有一个数据集合需要在PDF报告中展示。

数据最初存储为C#对象,需要在嵌入到PDF文档之前转换为JSON格式。

5.3. 示例代码

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

public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}

public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };

        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);

        // Create a PDF document using IronPDF
        var renderer = new ChromePdfRenderer();

        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}

在这个例子中,ReportData类代表了报告中每个部分的数据结构。 data列表包含该类的实例。

数据使用JsonConvert.SerializeObject序列化为JSON,并将生成的JSON字符串嵌入到HTML模板中。 然后,使用IronPDF将这个HTML模板转换为PDF文档。

5.4. 输出

C# Json Serializer(开发人员如何使用)图1

6.结论

总之,C# JSON序列化是处理C#应用程序中数据交换的基本工具。

无论您是处理Web API、配置设置,还是与其他语言的系统集成,理解和利用C# JSON序列化可以大大提高应用程序的效率和灵活性。

当涉及到在C#中处理PDF时,IronPDF提供了创建、操作和渲染PDF文档的强大解决方案。

通过结合C# JSON序列化和IronPDF的功能,开发人员可以将C#对象中的数据无缝集成到PDF报告中,打开了在应用程序中生成动态和数据驱动的PDF内容的新可能性。

随着软件开发世界的不断发展,精通这些工具对于构建强大和可互操作的解决方案变得越来越重要。

IronPDF提供免费试用许可证,这是一個测试并熟悉C# PDF库IronPDF定价的绝佳机会,定价从$999起,适用于Lite版。

要了解如何开始使用IronPDF,请访问IronPDF文档

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999