在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在現代軟體開發領域,資料交換格式在促進不同系統之間的通信中發揮著關鍵作用。 其中一種獲得極大流行的格式是JSON(JavaScript 物件表示法).
C#開發人員經常需要處理JSON數據,為了促進順暢的互動,C#提供了一個強大的工具 - C# JSON序列化器。
在本文中,我們將討論什麼JSON 序列化是及其用途。 此外,我們將嘗試通過一個範例來理解 JSON 序列化過程。IronPDF PDF 函式庫.
C# JSON Serializer 是一個將 C# 物件轉換為其 JSON 表示形式及反向操作的元件。 這個過程稱為序列化和反序列化,在 C# 應用程式與外部系統或服務之間交換資料時是必不可少的。
考慮一個場景,當一個電子商務應用需要將產品信息發送到手機應用時,與其發送手機應用可能無法理解的原始 C# 物件,該應用可以使用 JSON 序列化器將物件轉換為一種通用且易於各平台使用的 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
使用 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)
生成的JSON字串將會是{"姓名":"約翰·多伊","年齡":30}, 用 JSON 格式表示人對象。
C# 提供多種方式進行 JSON 序列化,每種方式都有其特點和使用情境。 以下是 C# 中一些常用的 JSON 序列化方法。
這個系列化工具是 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));
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));
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))
Dim 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 Sub
End Class
位於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
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
知道何時使用 C# JSON 序列化對於高效且無錯誤的數據交換至關重要。 以下是使用 JSON 序列化器有益的常見情境
在開發與客戶端應用程式通信的網路 API 時,JSON 是數據交換的首選格式,因為它具有輕量級和易於閱讀的特性。
在 JSON 格式中存儲和讀取配置設置是一種常見做法。JSON 序列化簡化了在 C# 對象和 JSON 之間轉換這些設置的過程。
當整合使用 C# 開發的應用程式與其他語言開發的系統時,JSON 提供了一種語言中立的資料格式,確保無縫的互操作性。
反序列化是將 JSON 字串轉換回其等效的 C# 物件的過程。 這是在處理來自外部來源的數據時的關鍵步驟,例如網路 API 或儲存的 JSON 資料。
在 C# 中,用於序列化的相同序列化器通常可以用於反序列化。 讓我們使用 Json.NET 的一個簡單例子來說明反序列化。(Newtonsoft.Json):
using System;
using Newtonsoft.Json;
public class user
{
public string firstname { 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 user
{
public string firstname { 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 user
Public Property firstname() 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
現在我們對 C# JSON 序列化有了很好的了解,讓我們來探索整合IronPDF C# 函式庫, 一個在 C# 中處理 PDF 的強大函式庫。 IronPDF 簡化了生成和操作 PDF 文檔的過程,是涉及 PDF 情境中的絕佳選擇。
IronPDF 是一個 C# 程式庫,可讓開發人員在其應用程式中創建、操作和渲染 PDF 文件。 無論您需要生成發票、報告或任何其他類型的 PDF 文件,IronPDF 都提供了一個方便且功能豐富的解決方案。
IronPDF 的HTML 轉 PDF功能是一個亮點,可維持您的版面配置和樣式。 它將網頁內容轉換為 PDF,適用於報告、發票和文檔。 您可以輕鬆地將 HTML 檔案、網址和 HTML 字串轉換為 PDF。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert 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 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 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 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 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 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 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 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 URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
要開始使用 IronPDF,您首先需要安裝 IronPDF NuGet 套件:
Install-Package IronPdf
安裝後,您可以在 C# 應用程式中使用 IronPDF 庫來執行各種與 PDF 相關的任務。
現在,讓我們探討 C# JSON 序列化如何與 IronPDF 無縫整合的一個實用範例。 考慮一個情境,您有一組需要在 PDF 報告中呈現的資料。
數據最初以 C# 物件的形式儲存,需先轉換為 JSON 格式,然後使用 IronPDF 嵌入到 PDF 文件中。
using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
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 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.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
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 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");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在此範例中,ReportData 類別代表報告中每個部分的資料結構。 data 列表包含此類的實例。
使用JsonConvert.SerializeObject將資料序列化為JSON,然後將生成的JSON字串嵌入到HTML模板中。 IronPDF 隨後會將這個 HTML 模板轉換成 PDF 文件。
總之,C# JSON 序列化是處理 C# 應用中數據交換的基本工具。
無論您是處理網路 API、配置設定,還是與其他語言的系統整合,理解並利用 C# JSON 序列化都能大大提升您應用程式的效率和靈活性。
在使用 C# 處理 PDF 時,IronPDF 提供了一個強大的解決方案,用於創建、操作和渲染 PDF 文檔。
藉由結合 C# JSON 序列化的強大功能和 IronPDF,開發人員可以將來自 C# 物件的資料無縫整合到 PDF 報告中,為其應用程式生成動態和數據驅動的 PDF 內容開辟新的可能性。
隨著軟體開發領域不斷演變,掌握這些工具對於構建穩健且具互操作性的解決方案變得越來越重要。
IronPDF 提供一個免費試用授權,這是一個測試和熟悉 C# PDF 庫的絕佳機會IronPDF 定價價格從 Lite 版本的 $749 起。
若要了解如何開始使用 IronPDF,請造訪IronPDF 文件檔案.