IRONSOFTWAREHOME
開發者更新

C# Json 序列化(開發者的工作原理)

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

在現代軟體開發的領域中,資料交換格式在使不同系統之間的通信成為可能方面發揮著至關重要的作用。 一種在這方面獲得極大流行的格式是JSON(JavaScript物件表示法)。

C#開發人員經常需要處理JSON資料,為了促進流暢的互動,C#提供了一個強大的工具 - C# JSON序列化器。

在本文中,我們將討論什麼是JSON序列化及其用途。 同時,我們將嘗試通過IronPDF PDF Library的例子來理解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 APIs

在開發與客戶端應用程式通信的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# Library的整合,這是一個強大的用於在C#中處理PDF的程式庫。 IronPDF簡化了產生和操作PDF文件的過程,使其成為涉及PDF情況的一個極佳選擇。

5.1. IronPDF概述

IronPDF是一個C#程式庫,允許開發人員在應用程式內建立、操作和呈現PDF文件。 無論您需要生成發票、報告或任何其他型別的PDF文件,IronPDF提供了一個方便且功能豐富的解決方案。

IronPDF的HTML到PDF轉換功能是一個亮點,它保持您的佈局和樣式。 它將Web內容轉換為PDF,適用於報告、發票和文件。 您可以輕鬆地將HTML文件、URLs和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

安裝後,您可以在C#應用程式中使用IronPDF程式庫執行各種PDF相關的任務。

5.2. 在IronPDF程式碼中使用C# JSON序列化器

現在,讓我們探討如何將C# JSON序列化與IronPDF無縫整合的實際例子。 考慮一種情況,就是您有一個需要在PDF報告中呈現的資料集合。

資料最初儲存為C#物件,需要在使用IronPDF嵌入到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序列化器(開發人員如何工作)圖1

6. 結論

總之,C# JSON序列化是一個用於在C#應用程式中處理資料交換的基本工具。

無論您是在處理Web API、配置設置,還是與其他語言的系統整合,理解和利用C# JSON序列化都可以顯著提升您的應用程式的效率和靈活性。

當涉及在C#中處理PDF時,IronPDF提供了一個強大的解決方案,用於建立、操作和呈現PDF文件。

通過結合C# JSON序列化和IronPDF的強大功能,開發人員可以將C#物件中的資料無縫整合到PDF報告中,開啟在應用程式中生成動態和資料驅動的PDF內容的新可能性。

隨著軟體開發的世界不斷發展,掌握這些工具對於構建強大和可互操作的解決方案變得越來越重要。

IronPDF提供一個免費試用授權,這是一個很好的機會來測試和熟悉C# PDF LibraryIronPDF定價, 定價從$999的精簡版開始。

如需了解如何開始使用IronPDF,請存取IronPDF文件。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

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 Iron Suite
預訂您的免費現場演示
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起