在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在現代軟件開發領域中,數據交換格式在促進不同系統之間的通信方面發揮著關鍵作用。其中一種已經獲得極大普及的格式是 JSON (JavaScript 物件表示法)C# 開發人員經常需要處理 JSON 數據,為了促進順暢的互動,C# 提供了一個強大的工具 - C# JSON Serializer。
在本文中,我們將討論什麼是 JSON 序列化 及其用途。此外,我們將嘗試通過 PDF Library 的一個範例來了解 JSON 序列化過程。 IronPDF.
C# JSON 序列化程式是一個將 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 序列化器有利的常見情況:
在開發與客戶端應用程序通訊的 Web APIs 時,JSON 是一種首選的數據交換格式,因為它輕量且易於閱讀。
以 JSON 格式儲存和讀取配置設定是常見做法。JSON 序列化簡化了在 C# 物件和 JSON 之間轉換這些設定的過程。
在將 C# 應用程式與其他語言開發的系統整合時,JSON 提供了一種與語言無關的數據格式,確保無縫的互操作性。
反序列化是將 JSON 字串轉換回其對應的 C# 對象的過程。這是在處理從外部來源接收到的數據時,例如 Web 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的過程。 IronPDF這是一個用於處理 C# 中 PDF 的強大庫。IronPDF 簡化了生成和操作 PDF 文件的過程,是處理 PDF 場景的絕佳選擇。
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 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# 物件中,需要在使用 IronPDF 嵌入到 PDF 文件之前轉換為 JSON 格式。
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");
}
}
Imports IronPdf
Imports Newtonsoft.Json.Converters
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json.Utilities
Imports System.Collections.Generic
Imports Newtonsoft.Json.Schema ' json schema
Imports Newtonsoft.Json
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 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
在這個範例中,ReportData 類別代表報告中每一個部分的資料結構。data 清單包含這個類別的實例。
使用 JsonConvert.SerializeObject 將資料序列化為 JSON,生成的 JSON 字串嵌入到 HTML 範本中。然後使用 IronPDF 將這個 HTML 範本轉換為 PDF 文件。
總而言之,C# JSON 序列化是 C# 應用程式中處理數據交換的基本工具。
無論您是在處理 Web API、配置設定,還是與其他語言的系統整合,理解和利用 C# JSON 序列化能大大提高應用程式的效率和靈活性。
在使用 C# 處理 PDF 時,IronPDF 提供了一個強大的解決方案,用於創建、操作和渲染 PDF 文件。
通過結合 C# JSON 序列化和 IronPDF 的功能,開發人員可以無縫地將 C# 對象中的數據集成到 PDF 報告中,為在應用程式中生成動態和數據驅動的 PDF 內容開闢了新的可能性。
隨著軟件開發世界的不斷演變,掌握這些工具對於構建健全且互操作的解決方案變得越來越重要。
IronPDF 提供了一個 免費試用 許可證,這是一個測試和熟悉 C# PDF 庫的絕佳機會 IronPDF 起價為 $liteLicense 的輕量版。
請訪問以瞭解如何開始使用IronPDF 這裡.