フッターコンテンツにスキップ
.NETヘルプ

Newtonsoft Jsonpath (開発者向けの仕組み)

もし .NET で JSON データを操作したことがあるなら、Newtonsoft.Json ライブラリに遭遇したことがあるでしょう。これは .NET 用の人気の高い高性能 JSON フレームワークです。 このチュートリアルは、初心者と中級ユーザーがこの強力なライブラリを効果的に理解し使用することを目的としており、特にそのシステムリファレンス、ドキュメント、および関連するリリースアップデートに焦点を当てています。

開始方法

Newtonsoft.Json を使用し始めるには、まず .NET プロジェクトにインストールする必要があります。 これは .NET パッケージマネージャである NuGet を通じて行うことができます。 NuGet パッケージマネージャ コンソールで次のように入力します。

Install-Package Newtonsoft.Json

インストールが成功した後、次の using ステートメントを追加して、ライブラリを .NET プロジェクトに追加します。

using Newtonsoft.Json;
using Newtonsoft.Json;
Imports Newtonsoft.Json
$vbLabelText   $csharpLabel

Newtonsoft.JSON での JSON の解析

JSON の解析は基本的に JSON 形式の文字列を使用できるデータ構造に変換するプロセスです。 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)
$vbLabelText   $csharpLabel

これで、person オブジェクトには JSON 文字列の値が含まれるようになります。

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)
$vbLabelText   $csharpLabel

オブジェクトを 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)
$vbLabelText   $csharpLabel

配列を扱う

場合によっては、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]
$vbLabelText   $csharpLabel

注: jsonObject は JSON から初期化された実際の JObject に置き換える必要があります。

JSON の修正と作成

Newtonsoft.Json は JSON の修正と作成を簡単にします。 Person オブジェクトの Age 値を更新する必要があるとしましょう。

jsonObject["Age"] = 31; // Update the age
jsonObject["Age"] = 31; // Update the age
jsonObject("Age") = 31 ' Update the age
$vbLabelText   $csharpLabel

そして、それを文字列に戻して書き込みます。

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
$vbLabelText   $csharpLabel

注: 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);
}
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
$vbLabelText   $csharpLabel

注: jsonObject は JSON から初期化された実際の JObject に置き換える必要があります。

IronPDFの紹介

Learn about IronPDF is a popular library in the .NET ecosystem that allows developers to 作成、編集、データ抽出できるようにする .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");
    }
}
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
$vbLabelText   $csharpLabel

JSON データがあり、そのデータから PDF レポートを作成する必要があるという要件を仮定します。 JSON データの解析には Newtonsoft.Json を、PDF の作成には IronPDF を使用できます。 これを行う方法を見てみましょう。

IronPDF のインストール

Newtonsoft.Json と同様に、IronPDF も NuGet を通じて利用可能です。 次のコマンドを使用してインストールできます。

Install-Package IronPdf

そして、次のコードを追加してプロジェクトに含めることができます。

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

ユースケース 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);
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)
$vbLabelText   $csharpLabel

このコードを実行すると、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>";
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>"
$vbLabelText   $csharpLabel

最後に、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")
$vbLabelText   $csharpLabel

Newtonsoft Jsonpath (How It Works For Developers): 図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);
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)
$vbLabelText   $csharpLabel

このソフトウェアは、FirstNameLastNamePhoneNumberEmailCity というキーとそれに対応する値を持つ person という名前の辞書を作成します。

次に 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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

各フォームフィールドは、person's 辞書のキーに関連付けられています。

最後に、記入済みの PDF フォームを保存します。

doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
$vbLabelText   $csharpLabel

この方法により、JSON ファイルのデータでフォームフィールドを記入した新しい PDF ドキュメントが作成されます。

これは、JSON データを解析し、IronPDF を使用して PDF ドキュメントを操作するために Newtonsoft.Json をいかに効果的に使用できるかを示しています。

Newtonsoft Jsonpath (How It Works For Developers): 図2

ユースケース 3: PDF メタデータから JSON へ

まず、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
$vbLabelText   $csharpLabel

次に、このデータを 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)
$vbLabelText   $csharpLabel

このコードで、metadata オブジェクトには、AuthorTitleCreateDate などのプロパティが含まれます。これらは JSON 文字列にシリアル化され、"metadata.json" という名前のファイルに書き込まれます。

Newtonsoft Jsonpath (How It Works For Developers): 図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 ファイルを効果的に生成、管理、操作するためのツールと支援を提供します。

よくある質問

JSONを扱うためにNewtonsoft.Jsonをインストールする方法は?

あなたの.NETプロジェクトにおいて、NuGetパッケージマネージャを使用してNewtonsoft.Jsonライブラリをインストールできます。Install-Package Newtonsoft.Jsonをパッケージマネージャコンソールで実行してください。インストール後、using Newtonsoft.Json;をプロジェクトに含めてください。

JsonConvert.DeserializeObject()は何に使いますか?

JsonConvert.DeserializeObject()メソッドはJSONデータを.NETオブジェクトに解析するために使用されます。これにより、JSON文字列を型Tのオブジェクトに変換し、C#アプリケーション内でJSONデータを扱えるようになります。

JSONデータをLINQを使用して操作する方法は?

LINQ to JSONはNewtonsoft.Jsonによって提供される機能で、LINQ構文を使用してJSONオブジェクトをクエリおよび操作することができます。これは、.NETアプリケーション内でJSONデータを効率的にフィルタまたは検索するのに便利です。

JSONデータからPDFレポートを生成する方法は?

JSONデータからPDFレポートを生成するには、まずJSONをNewtonsoft.Jsonを使用して.NETオブジェクトに変換します。その後、これらのデータを使用してHTMLテンプレートを作成します。IronPDFのChromePdfRendererを使用してHTMLテンプレートをPDFドキュメントへ変換します。

JSONデータを使用してPDFフォームを埋めることはできますか?

はい、Newtonsoft.Jsonを使ってJSONを辞書に解析し、これらのデータを使用してIronPDFを使ってPDFフォームフィールドを埋め、埋められたPDFドキュメントを保存することで、PDFフォームをJSONデータで埋めることができます。

PDFメタデータをJSONに変換する方法は?

IronPDFを使用してPDFからメタデータを抽出し、それをNewtonsoft.Jsonを用いてJSON文字列に変換します。このプロセスにより、PDFメタデータをJSON形式で簡単に保存および操作できます。

Newtonsoft.JsonとIronPDFを一緒に使用する利点は何ですか?

.NETアプリケーションでNewtonsoft.JsonとIronPDFを組み合わせて使用することにより、JSONデータを扱い、またPDFファイルを生成または操作するためのシームレスな方法を提供します。これにより、動的レポート生成、フォーム記入、データ交換などのタスクが容易になります。

.NETでJSONファイルを読み書きするにはどうすればいいですか?

JSONファイルを読み取るには、File.ReadAllTextを使用してJSON文字列を読み込み、それをJsonConvert.DeserializeObjectで解析します。JSONを書き込むためには、オブジェクトをJsonConvert.SerializeObjectを使用してシリアライズし、File.WriteAllTextで保存します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。