
Newtonsoft Jsonpath (開発者向けの仕組み)
もし .NET で JSON データを操作したことがあるなら、Newtonsoft.Json ライブラリに遭遇したことがあるでしょう。これは .NET 用の人気の高い高性能 JSON フレームワークです。 このチュートリアルは、初心者と中級ユーザーがこの強力なライブラリを効果的に理解し使用することを目的としており、特にそのシステムリファレンス、ドキュメント、および関連するリリースアップデートに焦点を当てています。
開始方法
Newtonsoft.Json を使用し始めるには、まず .NET プロジェクトにインストールする必要があります。 これは .NET パッケージマネージャである NuGet を通じて行うことができます。 NuGet パッケージマネージャ コンソールで次のように入力します。
PM > Install-Package Newtonsoft.Json
インストールが成功した後、次の using ステートメントを追加して、ライブラリを .NET プロジェクトに追加します。
using Newtonsoft.Json;Imports Newtonsoft.JsonNewtonsoft.JSON でJSONを解析する
JSON の解析は基本的に JSON 形式の文字列を使用できるデータ構造に変換するプロセスです。 Newtonsoft.Json を使用すると、このプロセスは簡単です。
人のためのサンプル JSON オブジェクトを見てみましょう。
{
"Name": "Iron Developer",
"Age": 30,
"Email": "irondeveloper@ironsoftware.com"
}
このJSON文字列をC#オブジェクトに解析するために、JsonConvert.DeserializeObject<t>() メソッドを使用します。その際に**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 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 ファイルの操作
JSON データをファイルから読み取ったり、ファイルに書き込んだりする必要がよくあります。Newtonsoft.Json を使ってその方法を見てみましょう。 このケースでは、File クラスをSystem.IO 名前空間から使用します。
JSON ファイルを読んでオブジェクトに解析するには:
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);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
}
]
}
JSON配列を反復処理するためにforeach ループを使用できます。
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]注: jsonObject はJSONから初期化された実際のJObjectで置き換えるべきです。
JSON の修正と作成
Newtonsoft.Json は JSON の修正と作成を簡単にします。 例えば、Person オブジェクトのAge 値を更新する必要があるとしましょう。
jsonObject["Age"] = 31; // Update the agejsonObject("Age") = 31 ' Update the ageそして、それを文字列に戻して書き込みます。
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // Write back to the fileDim updatedJson As String = jsonObject.ToString()
File.WriteAllText(path, updatedJson) ' Write back to the file注: jsonObject はJSONから初期化された実際のJObjectで置き換えるべきです。
LINQ to JSON
Newtonsoft.Json はまた、LINQ(統合言語クエリ)を使用して JSON オブジェクトに問い合わせしたり操作したりする機能も提供します。 これは非常に強力で、標準の LINQ オペレーターを使用して、XML やオブジェクトのコレクションと同様に JSON オブジェクトにクエリを実行できます。
30 歳未満のすべてのFriends の名前を取得する方法を示すサンプルです。
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注: jsonObject はJSONから初期化された実際のJObjectで置き換えるべきです。
IronPDFの紹介
IronPDF について学ぶ は、開発者が PDF ファイルを作成、編集、データ抽出できるようにする .NET 環境で人気のあるライブラリです。 それは非常に多才で、Newtonsoft.Json を含む他のライブラリとシームレスに動作します。
IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な 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 ClassJSON データがあり、そのデータから PDF レポートを作成する必要があるという要件を仮定します。 JSON データの解析には Newtonsoft.Json を、PDF の作成には IronPDF を使用できます。 これを行う方法を見てみましょう。
IronPDF のインストール
Newtonsoft.Json と同様に、IronPDF も NuGet を通じて利用可能です。 次のコマンドを使用してインストールできます。
PM > Install-Package IronPdf
そして、次のコードを追加してプロジェクトに含めることができます。
using IronPdf;Imports IronPdfユースケース 1: JSON データから PDF を作成
このユースケースでは、Newtonsoft.Json と IronPDF を使用して JSON データから PDF レポートを生成する方法を示します。 これは、JSON 形式で保存されたデータに基づいて動的レポートを作成するアプリケーションに特に役立ちます。
ここで使用するサンプル JSON ファイルはこちらです。
{
"Title": "Sales Report",
"Month": "August",
"Year": "2023",
"TotalSales": "10000",
"ItemsSold": "500"
}
この JSON データは、単純な販売レポートを表しています。
最初のステップは、このコードを実行することにより、データ.json という名前の JSON ファイルを読み取り、Newtonsoft.Json を使用して辞書に解析することです:
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)このコードを実行すると、JSONファイルのプロパティとその値を表すキーと値のペアを含むreportDataという名前のディクショナリが取得されます。
次に、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>";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");Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("Report.pdf")新しいNewtonsoft Jsonpath (開発者への基本): 図1
ユースケース 2: JSON から 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);Dim jsonString As String = File.ReadAllText("data.json")
Dim person = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)このソフトウェアは、City"とそれらの対応する値を持ちます。
次に、IronPdf を使ってPDFドキュメントを開き、フォームを取得します。
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")各フォームフィールドは、person's 辞書のキーに関連付けられています。
最後に、記入済みの PDF フォームを保存します。
doc.SaveAs("myPdfForm_filled.pdf");doc.SaveAs("myPdfForm_filled.pdf")このメソッドは、JSONファイルからのデータでフォームフィールドに記入された新しいPDF文書を作成します。
これにより、Newtonsoft.Json を使用してJSONデータを効果的に解析し、IronPDFでPDFドキュメントを操作する方法を示します。
新しいNewtonsoft Jsonpath (開発者への基本): 図2
ユースケース 3: PDF メタデータから JSON へ
まず、IronPDF を使用して PDF からメタデータを抽出します。
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);Dim jsonString As String = JsonConvert.SerializeObject(metadata, Formatting.Indented)
File.WriteAllText("metadata.json", jsonString)このコードでは、metadata オブジェクトはCreateDate などのプロパティを含みます。これらはJSON文字列にシリアル化され、"metadata.json"という名前のファイルに書き込まれます。
新しいNewtonsoft Jsonpath (開発者への基本): 図3
Newtonsoft.Json と IronPDF を組み合わせることで、PDF ファイルと JSON の間でデータを変換し、さまざまなユースケースを満たすことができます。
結論
結論として、Newtonsoft.Json と IronPDF は、JSON データを処理し .NET で PDF ファイルを生成するために、強力で柔軟なソリューションを提供します。 Newtonsoft.Json を使用して JSON データを .NET オブジェクトまたは辞書に解析することで、そのデータを操作し、PDF フォームに記入したり、テンプレートから動的 PDF レポートを生成したりするなど、さまざまなコンテキストで使用できます。 IronPDF は、PDF の作成と管理を簡単で効率的にします。
この記事では、ライブラリを紹介し、その主な機能のいくつかを強調しました。 しかし、両方のライブラリはさらに多くのことを提供できます。 その機能と能力を深く掘り下げるために、包括的なドキュメントをチェックすることを強くお勧めします。
IronPDF を試してみたい場合、IronPDF の無料試用版 を提供しているので、その機能を探り、購入前にニーズを満たしているか評価できます。 IronPDF を続けることを決定したら、IronPDF ライセンスオプションでライセンスが開始され、ここには今日お話ししたすべての機能とサポート、更新への継続的なアクセスが含まれます。 これにより、.NETプロジェクトでPDFファイルを効果的に生成、管理、および操作するためのツールと支援が得られます。

Jacob Mellor is Chief Technology Officer at Iron Software and a visionary engineer pioneering C# PDF technology. As the original developer behind Iron Software's core codebase, he has shaped the company's product architecture since its inception, transforming it alongside CEO Cameron Rimington into a 50+ person company serving NASA, Tesla, and global government agencies.
Related Articles


