.NET ヘルプ

Newtonsoft Jsonpath(開発者向けの動作方法)

更新済み 10月 29, 2023
共有:

.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
VB   C#

Newtonsoft.JSONによるJSONの解析

JSON解析とは、本質的にJSON形式の文字列を.NETアプリケーションで使用可能なデータ構造に変換するプロセスを指します。 Newtonsoft.Jsonを使用すると、そのプロセスは簡単です。

人物のサンプルJSONオブジェクトを見てみましょう:

{
    "Name": "Iron Developer",
    "Age": 30,
    "Email": "irondeveloper@ironsoftware.com"
}

このJSON文字列をC#オブジェクトに解析するには、JsonConvert.DeserializeObjectを使用できます。()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)
VB   C#

以下のコードにより、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)
VB   C#

オブジェクトを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)
VB   C#

配列の操作

場合によっては、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);
}
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]
VB   C#

JSONの修正および書き込み

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

jsonObject ["Age"] = 31; // update the age
jsonObject ["Age"] = 31; // update the age
jsonObject ("Age") = 31 ' update the age
VB   C#

そして、それを文字列に書き戻す:

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
VB   C#

LINQ to JSON

JSONデータを扱うための技術として、LINQ to JSONを使用すると便利です。IronPDF for .NETやIronOCR for .NETなどのツールを利用する際、JSONのクエリや操作を行うことが多くなります。LINQ to JSONは、C#言語でJSONデータに対してクエリを実行するための方法を提供し、簡潔かつ効率的にデータを操作することができます。

LINQ (Language Integrated Query) は、.NET環境に統合されたクエリ記述のための機能であり、XMLやSQLに代わって、JSON形式のデータを処理するのにも適しています。これにより、開発者は一貫したクエリスタイルを保ちながら、異なるデータソースにアクセスできます。

Iron SoftwareのIron PDFやIronOCRなどでこの技術を活用すれば、データのフィルタリング、集計、変換がより容易になります。JSONデータの効率的な管理と操作が求められる場合、LINQ to JSONは非常に有用なツールとなります。

Newtonsoft.Jsonは、LINQを使用してJSONオブジェクトをクエリおよび操作する機能も提供します。 (言語統合クエリ (Language Integrated Query)). これにより、XMLやオブジェクトのコレクションと同様に、標準のLINQオペレーターを使用して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
VB   C#

IronPDFの紹介

IronPDF .NETエコシステムで人気のあるライブラリで、開発者が 作成PDFファイルからデータを編集および抽出する。 それは非常に多用途で、Newtonsoft.Jsonを含む他のライブラリとも相性が良いです。

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

IronPDFのインストール

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

Install-Package IronPdf

次に、以下をプロジェクトに追加して含めることができます:

using IronPdf;
using IronPdf;
Imports IronPdf
VB   C#

ユースケース 1 JSONデータからのPDF作成

このユースケースに関連して、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)
VB   C#

このコードを実行した後、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>"
VB   C#

最後に、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")
VB   C#

Newtonsoft Jsonpath(開発者向けの動作): 図1

ユースケース 2 JSON to PDFフォーム

このユースケースでは、PDFドキュメントのフォームフィールドに入力するためにJSONデータを読み込みます。 この例では、次の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)
VB   C#

このソフトウェアは、「FirstName」、「LastName」、「PhoneNumber」、「Email」、および「City」というキーとそれに対応する値を持つ辞書「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
VB   C#

次に、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")
VB   C#

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

最後に、入力されたPDFフォームを保存します。

doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
VB   C#

このメソッドは、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;
var PDF = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = PDF.MetaData;
Dim PDF = IronPdf.PdfDocument.FromFile("document.pdf")
Dim metadata = PDF.MetaData
VB   C#

次に、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)
VB   C#

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

JSONPath を使用した Newtonsoft の動作(開発者向け):図 3

Newtonsoft.Json と IronPDF を組み合わせることで、PDFファイルとJSONの間でデータを変換でき、広範なユースケースに対応できます。

結論

結論として、Newtonsoft.Json と IronPDF は、.NET で JSON データの処理と PDF ファイルの生成を行うための強力かつ柔軟なソリューションを提供します。 Newtonsoft.Jsonを使用してJSONデータを.NETオブジェクトや辞書に解析することで、そのデータを操作し、PDFフォームの記入やテンプレートからの動的PDFレポートの生成など、さまざまなコンテキストで使用することができます。 IronPDFは、PDFの作成と管理のプロセスを簡単かつ効率的にします。

この記事では、ライブラリを紹介し、その主要機能のいくつかを強調しました。 しかし、両方のライブラリにはさらに多くの提供するものがあります。 その機能と能力について詳しく調べるために、豊富なドキュメントを確認することを強くお勧めします。

IronPDF に興味がある場合、彼らは 無料試用その機能を確認して、購入前に要件に合うかどうか評価することができます。 IronPDFの利用を続けることを決めたら、ライセンスは$749から始まり、これには私たちが話し合ったすべての機能の継続的なアクセスとサポートおよび更新が含まれます。 これにより、あなたの .NET プロジェクトで PDF ファイルを効果的に生成、管理、および操作するためのツールとサポートが確保されます。

< 以前
Math Floor C#(開発者向けの仕組み)
次へ >
C#(および開発者に対する動作の仕組み)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >