.NET ヘルプ

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

公開済み 2023年10月29日
共有:

.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の無料トライアルそのため、購入前にその機能を調べ、ニーズに合っているかどうかを評価することができます。 IronPDFのライセンスは以下の通りです。IronPDFライセンシングオプションこの翻訳には、私たちが説明したすべての機能への継続的なアクセスと、サポートおよびアップデートが含まれます。 これにより、あなたの .NET プロジェクトで PDF ファイルを効果的に生成、管理、および操作するためのツールとサポートが確保されます。

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