.NET ヘルプ

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

更新済み 12月 12, 2023
共有:

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

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

この記事では、何が JSONシリアライゼーション とその用途。 また、PDF Libraryを使用した例を通じて、JSONシリアライゼーションプロセスを理解しようとします。 IronPDF.

C# JSONシリアライザーの理解

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

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

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; }
}
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
VB   C#

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);
Dim person As New Person With {
	.Name = "John Doe",
	.Age = 30
}
Dim json As String = JsonConvert.SerializeObject(person)
VB   C#

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

種類の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);
    }
}
Imports System
Imports System.IO
Imports System.Runtime.Serialization.Json
Imports System.Text
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New DataContractJsonSerializer(GetType(Person))
		Dim stream As New MemoryStream()
		serializer.WriteObject(stream, person)
		Dim json As String = Encoding.UTF8.GetString(stream.ToArray())
		Console.WriteLine("Serialized JSON using DataContractJsonSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

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);
    }
}
Imports System
Imports System.Web.Script.Serialization
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New JavaScriptSerializer()
		Dim json As String = serializer.Serialize(person)
		Console.WriteLine("Serialized JSON using JavaScriptSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

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);
    }
}
Imports System
Imports Newtonsoft.Json
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim json As String = JsonConvert.SerializeObject(person)
		Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

3. C# JSON Serializerを使用するタイミング

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を使用した簡単な例でデシリアライズを説明しましょう。 (Json.NET):

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}");
    }
}
Imports System
Imports Newtonsoft.Json
Public Class user
	Public Property firstname() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim json As String = "{""Name"":""John Doe"",""Age"":30}"
		Dim deserializedPerson As Person = JsonConvert.DeserializeObject(Of Person)(json)
		Console.WriteLine("Deserialized Person:")
		Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}")
	End Sub
End Class
VB   C#

5. IronPDFをC#で紹介

C# JSONシリアル化についての理解が深まったところで、次に統合について探ってみましょう。 IronPDFC#で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");
    }
}
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
VB   C#

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

Install-Package IronPdf

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

5.2. IronPDFコードでC# JSONシリアライザーを使用する

それでは、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");
    }
}
Imports IronPdf
Imports Newtonsoft.Json.Converters
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json.Utilities
Imports System.Collections.Generic
Imports Newtonsoft.Json.Schema ' json schema
Imports Newtonsoft.Json
Public Class ReportData
	Public Property Title() As String
	Public Property Content() As String
End Class
Public Class Program
	Shared Sub Main()
		Dim data = New List(Of ReportData) From {
			New ReportData With {
				.Title = "Section 1",
				.Content = "Lorem ipsum dolor sit amet."
			},
			New ReportData With {
				.Title = "Section 2",
				.Content = "Consectetur adipiscing elit."
			}
		}
		' Convert data to JSON format
		Dim jsonData As String = JsonConvert.SerializeObject(data)
		' Create PDF document using IronPDF
		Dim renderer = New ChromePdfRenderer()
		' Embed JSON data into the PDF
		Dim htmlContent As String = $"<html><body><h4>{jsonData}</h4></body></html>"
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
		' Save or display the PDF as needed
		pdfDocument.SaveAs("Report.pdf")
	End Sub
End Class
VB   C#

この例では、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の始め方について学ぶには、訪問してください これ.

< 以前
Solid原則 C#(開発者にとっての仕組み)
次へ >
C# フォーム (開発者にとっての動作方法)

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

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