在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
如果您曾在 .NET 中處理過 JSON 數據,您可能會遇到 Newtonsoft.Json 庫,這是一個熱門的高效能 JSON 框架。 本教程旨在幫助初學者和中級使用者有效地理解和使用這個強大的庫,重點包括其系統引用、文件以及任何相關的版本更新。
要開始使用 Newtonsoft.Json,您首先需要將其安裝到您的 .NET 專案中。 這可以通過 NuGet,.NET 套件管理器來完成。 在 NuGet 套件管理器主控台中,輸入:
:InstallCmd Install-Package Newtonsoft.Json
:InstallCmd Install-Package Newtonsoft.Json
安裝成功後,通過添加以下 using 語句將庫添加到您的 .NET 項目中:
using Newtonsoft.Json;
using Newtonsoft.Json;
Imports Newtonsoft.Json
Newtonsoft.JSON
解析JSON解析 JSON 本質上是將 JSON 格式的字串轉換為 .NET 應用程式中可用的資料結構的過程。 使用 Newtonsoft.Json,這個過程很簡單。
讓我們來看看一個人的 JSON 物件範例:
{
"Name": "Iron Developer",
"Age": 30,
"Email": "irondeveloper@ironsoftware.com"
}
我們可以使用JsonConvert.DeserializeObject<T>()
方法將這個 JSON 字串解析為 C# 物件,其中T
是我們想要創建的物件類型。 在這種情況下,我們將創建一個Person
類,並將 JSON 解析為該類。
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
Public Property Email() As String
End Class
Private jsonString As String = "JSON string here"
Private person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
現在,person
物件將包含來自 JSON 字串的值。
您經常需要從文件中讀取或寫入JSON數據。讓我們看看如何使用Newtonsoft.Json來完成這項工作。 在此情況下,我們將使用System.IO
命名空間中的File
類。
要讀取 JSON 文件並將其解析為物件:
string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Dim path As String = "path to your json file"
Dim jsonString As String = File.ReadAllText(path)
Dim person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
將物件寫入JSON檔案:
Person person = new Person()
{
Name = "John Doe",
Age = 30,
Email = "johndoe@example.com"
};
string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Person person = new Person()
{
Name = "John Doe",
Age = 30,
Email = "johndoe@example.com"
};
string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Dim person As New Person() With {
.Name = "John Doe",
.Age = 30,
.Email = "johndoe@example.com"
}
Dim path As String = "path to your json file"
Dim jsonString As String = JsonConvert.SerializeObject(person)
File.WriteAllText(path, jsonString)
在某些情況下,您的 JSON 會包含數組。 例如,一個Person
對象可能有一個Friends
的陣列:
{
"Name": "John Doe",
"Friends": [
{
"Name": "Jane Doe",
"Age": 28
},
{
"Name": "Billy",
"Age": 25
}
]
}
您可以使用foreach
迴圈來遍歷 JSON 陣列:
JArray friends = (JArray)jsonObject ["Friends"];
foreach (JObject friend in friends)
{
string friendName = (string)friend ["Name"];
Console.WriteLine(friendName);
}
JArray friends = (JArray)jsonObject ["Friends"];
foreach (JObject friend in friends)
{
string friendName = (string)friend ["Name"];
Console.WriteLine(friendName);
}
Dim friends As JArray = CType(jsonObject ("Friends"), JArray)
For Each [friend] As JObject In friends
Dim friendName As String = CStr([friend] ("Name"))
Console.WriteLine(friendName)
Next [friend]
Newtonsoft.Json 使修改和編寫 JSON 變得簡單。 假設您需要更新Person
物件的Age
值。
jsonObject ["Age"] = 31; // update the age
jsonObject ["Age"] = 31; // update the age
jsonObject ("Age") = 31 ' update the age
然後將其寫回字串:
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // write back to the file
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // write back to the file
Dim updatedJson As String = jsonObject.ToString()
File.WriteAllText(path, updatedJson) ' write back to the file
Newtonsoft.Json 還提供使用 LINQ(Language Integrated Query,語言整合查詢)查詢和操作 JSON 對象的功能。 這非常強大,因為它允許您使用所有標準的 LINQ 運算符來查詢 JSON 物件,就像查詢 XML 或物件集合一樣。
以下是如何獲取所有朋友名稱的範例,其年齡小於30歲:
var youngFriends = jsonObject ["Friends"].Where(f => (int)f ["Age"] < 30)
.Select(f => (string)f ["Name"]);
foreach (string name in youngFriends)
{
Console.WriteLine(name);
}
var youngFriends = jsonObject ["Friends"].Where(f => (int)f ["Age"] < 30)
.Select(f => (string)f ["Name"]);
foreach (string name in youngFriends)
{
Console.WriteLine(name);
}
Imports System
Dim youngFriends = jsonObject ("Friends").Where(Function(f) CInt(Math.Truncate(f ("Age"))) < 30).Select(Function(f) CStr(f ("Name")))
For Each name As String In youngFriends
Console.WriteLine(name)
Next name
了解 IronPDF 是 .NET 繁衍體系中頗受歡迎的程式庫,允許開發人員創建、編輯,以及從 PDF 文件中提取數據。 它非常多功能,並且能夠與包括 Newtonsoft.Json 在內的其他庫良好配合。
IronPDF 在HTML 到 PDF轉換中表現優異,確保精確保留原始佈局和樣式。 它非常適合從基於網絡的內容(如報告、發票和文檔)創建PDF。 IronPDF 支援 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
假設我們有一個需求,要求從 JSON 數據生成 PDF 報告。 我們可以使用 Newtonsoft.Json 來解析 JSON 資料,並使用 IronPDF 來創建 PDF。 讓我們看看如何做到這一點。
與Newtonsoft.Json一樣,IronPDF也可透過NuGet取得。 您可以使用以下命令安裝它:
Install-Package IronPdf
然後,您可以通過添加將其包含在您的專案中:
using IronPdf;
using IronPdf;
Imports IronPdf
關於此用例,我們將演示如何使用 Newtonsoft.Json 和 IronPDF 從 JSON 數據生成 PDF 報告。 這對於基於儲存在 JSON 格式的數據創建動態報告的應用程式特別有用。
以下是我們將要處理的示例 JSON 文件:
{
"Title": "Sales Report",
"Month": "August",
"Year": "2023",
"TotalSales": "10000",
"ItemsSold": "500"
}
此 JSON 資料代表一份簡單的銷售報告。
第一步是讀取名為 'data.json' 的 JSON 文件,並使用 Newtonsoft.Json 將其解析為字典:
string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim reportData = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
執行此代碼後,我們預期您將擁有一個名為reportData
的字典,該字典包含在 JSON 文件中表示屬性及其值的鍵值對。
接下來,我們使用reportData
中的數據生成一個 HTML 模板。 reportData
字典中的鍵用於將適當的值插入到 HTML 中:
string htmlContent = $@"
<html>
<head><title>{reportData ["Title"]}</title></head>
<body>
<h1>{reportData ["Title"]}</h1>
<p>Month: {reportData ["Month"]}</p>
<p>Year: {reportData ["Year"]}</p>
<p>Total Sales: {reportData ["TotalSales"]}</p>
<p>Items Sold: {reportData ["ItemsSold"]}</p>
</body>
</html>";
string htmlContent = $@"
<html>
<head><title>{reportData ["Title"]}</title></head>
<body>
<h1>{reportData ["Title"]}</h1>
<p>Month: {reportData ["Month"]}</p>
<p>Year: {reportData ["Year"]}</p>
<p>Total Sales: {reportData ["TotalSales"]}</p>
<p>Items Sold: {reportData ["ItemsSold"]}</p>
</body>
</html>";
Dim htmlContent As String = $"
<html>
<head><title>{reportData ("Title")}</title></head>ignoreignore<body><h1>{reportData ("Title")}</h1><p>Month: {reportData ("Month")}</p><p>Year: {reportData ("Year")}</p><p>Total Sales: {reportData ("TotalSales")}</p><p>Items Sold: {reportData ("ItemsSold")}</p></body></html>"
最後,我們使用IronPDF將 HTML 代碼轉換為 PDF 文件。 我們使用ChromePdfRenderer
來創建一個PDF渲染器,使用它將HTML轉換為PDF,然後保存PDF:
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
PDF.SaveAs("Report.pdf");
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
PDF.SaveAs("Report.pdf");
Dim Renderer = New ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
PDF.SaveAs("Report.pdf")
在此使用案例中,我們將讀取 JSON 數據以填寫 PDF 文件中的表單欄位。 在此範例中,假設我們有以下 JSON 資料:
{
"FirstName": "John",
"LastName": "Smith",
"PhoneNumber": "+19159969739",
"Email": "John@email.com",
"City": "Chicago"
}
這個 JSON 表示一個人的個人信息。
首先,我們使用Newtonsoft.Json
從檔案中讀取 JSON 資料並解析成字典:
string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim person = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
這個軟體建立了一個名為person
的字典,其包含鍵 "FirstName
"、"LastName
"、"PhoneNumber
"、"Email
" 和 "City
" 及其相應的值。
接下來,我們使用IronPdf
打開 PDF 文件並獲取表單:
var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
Dim doc = PdfDocument.FromFile("myPdfForm.pdf")
Dim form = doc.Form
我們現在可以使用person
字典來填寫 PDF 文件中的表單字段:
form.Fields [0].Value = person ["FirstName"];
form.Fields [1].Value = person ["LastName"];
form.Fields [2].Value = person ["PhoneNumber"];
form.Fields [3].Value = person ["Email"];
form.Fields [4].Value = person ["City"];
form.Fields [0].Value = person ["FirstName"];
form.Fields [1].Value = person ["LastName"];
form.Fields [2].Value = person ["PhoneNumber"];
form.Fields [3].Value = person ["Email"];
form.Fields [4].Value = person ["City"];
form.Fields (0).Value = person ("FirstName")
form.Fields (1).Value = person ("LastName")
form.Fields (2).Value = person ("PhoneNumber")
form.Fields (3).Value = person ("Email")
form.Fields (4).Value = person ("City")
每個表單欄位都與人的字典中的鍵相關聯。
最後,我們儲存填寫好的 PDF 表單:
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
此方法將會創建一個新的 PDF 文件,並使用來自 JSON 文件的數據填入表單欄位。
這示範了如何有效地使用Newtonsoft.Json
解析 JSON 數據以及使用 IronPDF 操作 PDF 文檔。
首先,使用IronPDF從PDF中提取元數據:
var PDF = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = PDF.MetaData;
var PDF = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = PDF.MetaData;
Dim PDF = IronPdf.PdfDocument.FromFile("document.pdf")
Dim metadata = PDF.MetaData
然後,使用Newtonsoft.Json
將此數據序列化為 JSON 字串:
string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
Dim jsonString As String = JsonConvert.SerializeObject(metadata, Formatting.Indented)
File.WriteAllText("metadata.json", jsonString)
在此程式碼中,metadata
物件包含如 Author
、Title
、CreateDate
等屬性。這些屬性被序列化為 JSON 字串,並寫入檔案名稱為 "metadata.json"。
結合 Newtonsoft.Json 和 IronPDF,您可以在 PDF 文件和 JSON 之間轉換數據,滿足廣泛的使用需求。
總結來說,Newtonsoft.Json 與 IronPDF 共同提供了一個強大且靈活的解決方案,用於在 .NET 中處理 JSON 數據和生成 PDF 文件。 透過使用 Newtonsoft.Json 將 JSON 資料解析為 .NET 物件或字典,我們可以操作這些資料並在各種情境中使用,例如填寫 PDF 表單或從範本生成動態 PDF 報告。 IronPDF 使創建和管理 PDF 的過程變得簡單高效。
本文介紹了這些庫,並強調了一些其核心功能。 然而,這兩個庫都還有更多功能可供發掘。 我們強烈建議查看他們的詳細文檔,以深入了解其特性和功能。
如果您有興趣嘗試使用IronPDF,他們提供IronPDF的免費試用版,以便您探索其功能並評估它是否符合您的需求再進行購買。 一旦您決定繼續使用IronPDF,授權將從IronPDF 授權選項開始,其中包括持續訪問我們討論的所有功能以及提供支持和更新。 這確保您擁有工具和協助,以便在您的 .NET 項目中有效生成、管理和處理 PDF 文件。