.NET ヘルプ

C# Json シリアライザー(開発者向けの動作)

Kannaopat Udonpant
カンナパット・ウドンパント
2023年12月12日
共有:

現代のソフトウェア開発の領域では、データ交換フォーマットが異なるシステム間の通信を可能にする上で重要な役割を果たしています。 非常に人気を集めている形式の一つがJSONです。(JavaScript オブジェクト表記).

C#開発者はしばしばJSONデータを扱うことがあり、スムーズな操作を実現するために、C#は強力なツールであるC# JSONシリアライザを提供しています。

この記事ではJSONシリアライゼーションとその用途を説明すること。 また、JSONシリアライゼーションプロセスを理解するために、次のような例を示します。IronPDF PDFライブラリ.

1.C# JSONシリアライザを理解する

C# JSON シリアライザーは、C# オブジェクトを JSON 表現に変換し、逆に JSON 表現を C# オブジェクトに変換するコンポーネントです。 このプロセスは、シリアライゼーションおよびデシリアライゼーションとして知られており、C#アプリケーションと外部システムやサービスとの間でデータを交換する際に不可欠です。

次のシナリオを考えてみましょう:あるeコマースアプリケーションがモバイルアプリに製品情報を送信する必要があります。モバイルアプリが理解できないかもしれない生のC#オブジェクトを送信する代わりに、アプリケーションはJSONシリアライザを使用してオブジェクトをJSON形式に変換できます。これにより、さまざまなプラットフォームで広く認識され、容易に利用できるようになります。

1.1.C# JSONシリアライズの例

それでは、概念を説明するために簡単な例を見てみましょう。 次の内容を日本語に翻訳してください:

仮に、人を表すC#クラスがあるとします。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

C# JSONシリアライゼーションを使用すると、このクラスのインスタンスをJSON文字列に変換できます。

Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);

結果として得られるJSON文字列は{「名前」:「ジョン・ドウ」、「年齢」:30}、JSON形式でオブジェクトを表現する。

2.C# JSONシリアライザーの種類とコード例

C#には、JSONシリアライゼーションを実行するためのさまざまな方法があり、それぞれ独自の機能と使用用途があります。 以下はC#で一般的に使用されるJSONシリアライゼーションメソッドです

2.1. DataContractJsonSerializer

データコントラクトJSONシリアライザー

このシリアライザーは System.Runtime.Serialization.Json 名前空間の一部であり、データ コントラクト属性を使用してシリアライゼーション プロセスを制御します。

using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}

JavaScriptSerializer

System.Web.Script.Serialization 名前空間にあるこのシリアライザーは、ASP.NETの一部であり、オブジェクトをJSON形式にシリアライズするための簡単な方法を提供します。

using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}

2.3. Json.NET(Newtonsoft.Json)

Json.NET(Newtonsoft.Json)は、C#でJSONシリアライゼーションを行うために広く使用されているサードパーティライブラリです。 柔軟性、パフォーマンス、および豊富な機能セットを提供します。

using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}
using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}

3.C# JSONシリアライザーを使用する場合

C# JSONシリアライゼーションを使用するタイミングを知ることは、効率的でエラーフリーなデータ交換に不可欠です。 以下は、JSONシリアライザーの使用が有益である一般的なシナリオです

3.1. Web API

Web API

クライアントアプリケーションと通信するWeb APIを開発する際、JSON形式はその軽量で人間が読みやすい特性のため、データ交換の推奨フォーマットとして選ばれています。

3.2. 設定の構成

JSON形式で設定を保存および読み取ることは一般的な手法です。JSONシリアル化は、これらの設定をC#オブジェクトとJSONの間で変換するプロセスを簡素化します。

3.3. 互換性

C#アプリケーションを他の言語で開発されたシステムと統合する際、JSONは言語に依存しないデータフォーマットを提供し、シームレスな相互運用性を確保します。

4. デシリアライズされたJSON文字列とは何ですか?

デシリアライズは、JSON文字列を同等のC#オブジェクトに戻すプロセスです。 これは、Web API や保存された JSON データなど、外部ソースから取得したデータを扱う際に重要なステップです。

C#では、シリアライズに使用される同じシリアライザーが、デシリアライズにも使用されることがよくあります。 Json.NETを使用した簡単な例でデシリアライズを説明しましょう。(Newtonsoft.Json):

using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}
using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}

5. IronPDFをC#で紹介

C# JSONシリアル化についての理解が深まったところで、次に統合について探ってみましょう。IronPDF C# ライブラリC#でPDFを操作するための強力なライブラリ。 IronPDFは、PDF文書の生成や操作のプロセスを簡素化し、PDFが関わるシナリオにおいて優れた選択肢となります。

5.1. IronPDF の概要

IronPDFは、開発者がアプリケーション内でPDFドキュメントを作成、操作、レンダリングできるC#ライブラリです。 請求書、レポート、その他のあらゆる種類のPDFドキュメントを生成する必要がある場合、IronPDFは便利で多機能なソリューションを提供します。

IronPDFのHTMLをPDFに変換機能はレイアウトとスタイルを維持し、ハイライトされます。 ウェブコンテンツをPDFに変換し、レポート、請求書、ドキュメントに適しています。 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");
    }
}

IronPDFを始めるには、まずIronPDF NuGetパッケージをインストールする必要があります。

Install-Package IronPdf

インストールが完了すると、C#アプリケーションでさまざまなPDF関連のタスクを実行するためにIronPDFライブラリを使用できます。

5.2.C#のJSONシリアライザーをIronPdfコードで使う

それでは、C# の JSON シリアライゼーションを IronPDF とシームレスに統合する実際の例を見てみましょう。 データのコレクションをPDFレポートで提示する必要があるシナリオを考えてみてください。

データは最初にC#オブジェクトとして格納され、IronPDFを使用してPDFドキュメントに埋め込まれる前にJSON形式に変換する必要があります。

5.3. サンプルコード

using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}
using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}

この例では、ReportData クラスはレポートの各セクションのデータ構造を表します。 data リストにはこのクラスのインスタンスが含まれています。

データはJsonConvert.SerializeObjectを使用してJSONにシリアライズされ、その結果得られたJSON文字列はHTMLテンプレートに埋め込まれます。 IronPDFは、このHTMLテンプレートをPDFドキュメントに変換するために使用されます。

5.4. 出力

C# Json シリアライザ (開発者用の動作方法) 図1

結論

結論として、C# JSONシリアライゼーションは、C#アプリケーションでデータのやり取りを扱うための基本的なツールです。

Web API、構成設定、または他の言語でのシステム統合を扱う場合でも、C# JSONシリアライゼーションを理解し活用することで、アプリケーションの効率と柔軟性を大幅に向上させることができます。

PDFをC#で扱う場合、IronPDFはPDFドキュメントの作成、操作、およびレンダリングに強力なソリューションを提供します。

C# JSONシリアライゼーションとIronPDFの力を組み合わせることで、開発者はC#オブジェクトからPDFレポートにデータをシームレスに統合できるようになり、アプリケーション内で動的かつデータ駆動型のPDFコンテンツを生成する新しい可能性が開かれます。

ソフトウェア開発の世界が進化し続ける中で、これらのツールを習得することは、堅牢で相互運用可能なソリューションを構築するためにますます重要になっています。

IronPDFは無料試用ライセンスC# PDF ライブラリをテストし、慣れる絶好の機会です。IronPDF 価格設定価格は、ライト版の$liteLicense から始まります。

IronPDFを使い始めるには、以下をご覧ください。IronPDF ドキュメント.

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
Solid原則 C#(開発者にとっての仕組み)
次へ >
C# フォーム (開発者にとっての動作方法)