.NET幫助 C# Json 序列化(開發者的工作原理) Jacob Mellor 更新:7月 28, 2025 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在現代軟體開發的領域中,資料交換格式在促成不同系統間的溝通上扮演著重要的角色。 JSON (JavaScript Object Notation,JavaScript 物件符號) 就是其中一種廣受歡迎的格式。 C# 開發人員經常需要處理 JSON 數據,為了促進順利交互,C# 提供了一個強大的工具——C# JSON 序列化程式。 在本文中,我們將討論什麼是 JSON 序列化及其用途。 此外,我們還將嘗試借助 IronPDF PDF Library 的範例來瞭解 JSON 序列化過程。 1.瞭解 C# JSON 序列化器。 C# JSON Serializer 是將 C# 物件轉換為其 JSON 表示形式的元件,反之亦然。 當 C# 應用程式與外部系統或服務交換資料時,這個稱為序列化與反序列化的過程是不可或缺的。 考慮一個電子商務應用程式需要將產品資訊傳送至行動應用程式的情況。與其傳送手機應用程式可能無法理解的原始 C# 物件,應用程式可以使用 JSON 序列化器將物件轉換成各種平台都能普遍辨識且容易使用的 JSON 格式。 1.1.C# JSON 序列化的範例。 讓我們深入一個簡單的例子來說明這個概念。 假設我們有一個代表人的 C# 類別: public class Person { public string Name { get; set; } public int Age { get; set; } } public class Person { public string Name { get; set; } public int Age { get; set; } } Public Class Person Public Property Name() As String Public Property Age() As Integer End Class $vbLabelText $csharpLabel 使用 C# JSON 序列化,我們可以將此類別的實例轉換成 JSON 字串: Person person = new Person { Name = "John Doe", Age = 30 }; string json = JsonConvert.SerializeObject(person); Person person = new Person { Name = "John Doe", Age = 30 }; string json = JsonConvert.SerializeObject(person); Dim person As New Person With { .Name = "John Doe", .Age = 30 } Dim json As String = JsonConvert.SerializeObject(person) $vbLabelText $csharpLabel 由此產生的 JSON 字串將為 {"Name": "John Doe", "Age":30},以 JSON 格式表示人物物件。 2.C# JSON 序列化器的類型與程式碼範例 C# 提供了多種執行 JSON 序列化的方式,每種方式都有自己的功能和使用個案。 以下是 C# 中一些常用的 JSON 序列化方法: 2.1.DataContractJsonSerializer 此序列化器是 System.Runtime.Serialization.Json 命名空間的一部分,並使用 Data Contract 屬性來控制序列化程序。 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); } } } 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); } } } Imports System Imports System.IO Imports System.Runtime.Serialization.Json Imports System.Text Public Class Person Public Property Name() As String Public Property Age() As Integer End Class Friend Class Program Shared Sub Main() Dim person As New Person With { .Name = "John Doe", .Age = 30 } Dim serializer As New DataContractJsonSerializer(GetType(Person)) Using stream As New MemoryStream() serializer.WriteObject(stream, person) Dim json As String = Encoding.UTF8.GetString(stream.ToArray()) Console.WriteLine("Serialized JSON using DataContractJsonSerializer:") Console.WriteLine(json) End Using End Sub End Class $vbLabelText $csharpLabel 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); } } 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); } } Imports System Imports System.Web.Script.Serialization Public Class Person Public Property Name() As String Public Property Age() As Integer End Class Friend Class Program Shared Sub Main() Dim person As New Person With { .Name = "John Doe", .Age = 30 } Dim serializer As New JavaScriptSerializer() Dim json As String = serializer.Serialize(person) Console.WriteLine("Serialized JSON using JavaScriptSerializer:") Console.WriteLine(json) End Sub End Class $vbLabelText $csharpLabel 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); } } 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); } } Imports System Imports Newtonsoft.Json Public Class Person Public Property Name() As String Public Property Age() As Integer End Class Friend Class Program Shared Sub Main() Dim person As New Person With { .Name = "John Doe", .Age = 30 } Dim json As String = JsonConvert.SerializeObject(person) Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):") Console.WriteLine(json) End Sub End Class $vbLabelText $csharpLabel 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}"); } } 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}"); } } Imports System Imports Newtonsoft.Json Public Class Person Public Property Name() As String Public Property Age() As Integer End Class Friend Class Program Shared Sub Main() Dim json As String = "{""Name"":""John Doe"",""Age"":30}" Dim deserializedPerson As Person = JsonConvert.DeserializeObject(Of Person)(json) Console.WriteLine("Deserialized Person:") Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}") End Sub End Class $vbLabelText $csharpLabel 5.介紹 IronPDF 的 C#。 現在我們對 C# JSON 序列化有了紮實的了解,讓我們來探索 IronPDF C# Library 的整合,這是一個用於在 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"); } } 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"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert an HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert an HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert a URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class $vbLabelText $csharpLabel 要開始使用 IronPDF,您首先需要安裝 IronPDF NuGet 套件: Install-Package IronPdf 安裝之後,您就可以在 C# 應用程式中使用 IronPDF 函式庫來執行各種 PDF 相關工作。 5.2.使用 C# JSON 序列化器與 IronPDF 程式碼。 現在,讓我們探討一個實例,說明如何將 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"); } } 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"); } } Imports IronPdf Imports Newtonsoft.Json Imports System.Collections.Generic Public Class ReportData Public Property Title() As String Public Property Content() As String End Class Public Class Program Shared Sub Main() Dim data = New List(Of ReportData) From { New ReportData With { .Title = "Section 1", .Content = "Lorem ipsum dolor sit amet." }, New ReportData With { .Title = "Section 2", .Content = "Consectetur adipiscing elit." } } ' Convert data to JSON format Dim jsonData As String = JsonConvert.SerializeObject(data) ' Create a PDF document using IronPDF Dim renderer = New ChromePdfRenderer() ' Embed JSON data into the PDF Dim htmlContent As String = $"<html><body><h4>{jsonData}</h4></body></html>" Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent) ' Save or display the PDF as needed pdfDocument.SaveAs("Report.pdf") End Sub End Class $vbLabelText $csharpLabel 在這個範例中,ReportData 類代表報告中每個部分的資料結構。 data 清單包含此類別的實例。 使用 JsonConvert.SerializeObject 將資料序列化為 JSON,並將產生的 JSON 字串嵌入 HTML 模板中。 然後使用 IronPDF 將此 HTML 模板轉換成 PDF 文件。 5.4.輸出 6.結論 總而言之,C# JSON 序列化是 C# 應用程式中處理資料交換的基本工具。 無論您是處理網頁 API、組態設定,或是與其他語言的系統整合,瞭解並善用 C# JSON 序列化都能大幅提升應用程式的效率與彈性。 說到用 C# 處理 PDF,IronPDF 提供了一個強大的解決方案,可用於建立、處理和渲染 PDF 文件。 透過結合 C# JSON 序列化和 IronPDF 的強大功能,開發人員可以將 C# 物件中的資料無縫整合至 PDF 報表中,為在應用程式中產生動態和資料驅動的 PDF 內容開啟新的可能性。 隨著軟體開發世界的不斷演進,掌握這些工具對於建立強大且可互操作的解決方案變得越來越重要。 IronPDF 提供 免費試用授權,這是測試和熟悉 C# PDF Library IronPDF定價的絕佳機會,Lite 版本的定價從 $799 起。 要瞭解如何開始使用 IronPdf,請造訪 IronPDF 文件。 常見問題解答 如何在 C# 中將 HTML 轉換為 PDF? 您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。 什麼是 C# 中的 JSON 序列化,為什麼它很重要? C# 中的 JSON 序列化是將 C# 物件轉換為其 JSON 表示形式的過程,這對應用程式與外部系統之間的資料交換至關重要。這使得它成為 Web API 和組態設定等情境的必要工具。 有哪些主要的 C# JSON 序列化器? 主要的 C# JSON 序列化器有 DataContractJsonSerializer、JavaScriptSerializer 和 Json.NET (Newtonsoft.Json),每種序列化器都提供適合不同用例的獨特功能。 如何在 C# 中將 JSON 資料嵌入 PDF 文件? 您可以將 C# 物件序列化為 JSON 格式,然後透過 IronPDF 的 HTML 渲染功能,將這些 JSON 資料嵌入 PDF 文件中。 我可以將 JSON 字串轉換回 C# 物件嗎?如何轉換? 是的,您可以透過稱為反序列化的程序,將 JSON 字串轉換回 C# 物件。Json.NET (Newtonsoft.Json) 提供將 JSON 反序列化為 C# 物件的強大功能。 IronPDF 在用 C# 從 JSON 生成 PDF 方面扮演什麼角色? IronPDF 可讓開發人員透過渲染 HTML 內容來建立 PDF,其中可包含 JSON 資料。這種整合對於產生動態、資料驅動的 PDF 非常有用。 如何在 C# 專案中安裝 PDF 函式庫? 您可以在 C# 專案中安裝 PDF 函式庫,方法是使用 NuGet Package Manager 將相關的函式庫套件(如 IronPDF)新增至專案中。 JSON 序列化如何增強系統之間的互操作性? JSON 序列化透過提供與語言無關的資料格式來增強互操作性,讓可能以各種語言開發的不同系統能夠無縫交換資料。 在 C# 中使用 Json.NET 進行 JSON 序列化有哪些優點? Json.NET (Newtonsoft.Json) 具備彈性、效能和全面的功能集,使其成為 C# 應用程式中 JSON 序列化的首選。 在 C# 中使用 IronPDF 與 JSON 序列化的實例是什麼? 一個實例是將 C# 物件轉換成 JSON 格式,並使用 IronPDF 將此 JSON 嵌入到 PDF 文件中,從而建立一個可以輕鬆分享和列印的動態報告。 Jacob Mellor 立即與工程團隊聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。 相關文章 更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 Solid 原則 C#(開發者的工作原理)C# 表單(開發者的工作原理)
更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多