.NET ヘルプ

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

.NETでJSONデータを扱ったことがあるなら、おそらくNewtonsoft.Jsonライブラリに出会ったことがあるでしょう。.NET向けの人気の高性能JSONフレームワークです。 このチュートリアルは、初心者および中級ユーザーがこの強力なライブラリを効果的に理解し、使用できるように、システム参照、ドキュメント、および関連するリリース更新に焦点を当てています。

はじめに

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

:InstallCmd Install-Package Newtonsoft.Json
:InstallCmd Install-Package Newtonsoft.Json
SHELL

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

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

Newtonsoft.JSONを使用したJSONの解析

JSON解析とは、本質的にJSON形式の文字列を.NETアプリケーションで使用可能なデータ構造に変換するプロセスを指します。 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 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

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

LINQ to JSON

Newtonsoft.Jsonは、LINQ(言語統合クエリ)を使用してJSONオブジェクトをクエリおよび操作するための機能も提供します。 これにより、XMLやオブジェクトのコレクションと同様に、標準のLINQオペレーターを使用してJSONオブジェクトをクエリできるため、非常に強力です。

こちらは、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
$vbLabelText   $csharpLabel

IronPDFの紹介

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

IronPDFは、元のレイアウトとスタイルを正確に保持してHTMLからPDFへの変換に優れています。 それは、レポート、請求書、およびドキュメントなどのWebベースのコンテンツから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
$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データは、簡単な販売レポートを表しています。

最初のステップは、'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)
$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

最後に、HTMLコードをPDFドキュメントに変換するためにIronPDFを使用します。 私たちは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(開発者にとっての動作方法):図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)
$vbLabelText   $csharpLabel

このソフトウェアは、「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
$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の辞書のキーに関連付けられています。

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

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

このメソッドは、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
$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(開発者向けの使い方):図 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 ファイルを効果的に生成、管理、および操作するためのツールとサポートが確保されます。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
Math Floor C#(開発者向けの仕組み)
次へ >
C#(および開発者に対する動作の仕組み)