logo

C# で JSON を解析する

導入:

C# での JSON の解析は、JSON データを使用するアプリケーションを構築する開発者にとって一般的なタスクです。 JSON は表します JavaScript オブジェクト表記法 これは、通常のユーザーが読み書きするのに最適で、マシンが解析して生成するのが簡単な、軽量のデータ表現変更形式です。この記事では、組み込み関数を使用して C# で JSON を解析する方法を見ていきます。 .NET JSON ライブラリを解析しています。

C# での JSON 解析はさまざまな方法で実現できます。 Newtonsoft.Json ライブラリ または、 System.Text.Json ライブラリ で紹介された .NETコア3.0 。どちらのライブラリも C# での JSON 解析の一般的な選択肢であり、同様の機能を提供します。

方法 1: Newtonsoft.Json パッケージを使用する

C# で JSON を解析するための最も人気のあるパッケージの 1 つは次のとおりです。 ニュートンソフト.Json 。これは、JSON データをシリアル化および逆シリアル化するためのシンプルかつ柔軟な方法を提供するサードパーティ パッケージです。

使用するには ニュートンソフト.Json C# プロジェクトでは、最初にインストールする必要があります。経由でインストールできます NuGet のパッケージマネージャー ビジュアルスタジオ または、パッケージ マネージャー コンソールで次のコマンドを実行します。

抽象クラスJava

コード:

 Install-Package Newtonsoft.Json 

インストールしたら、コード内で使用を開始できます。以下は、JSON を解析する方法の例です。 ニュートンソフト.Json:

C# コード:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

この例では、JSON 文字列を定義し、それを使用して逆シリアル化します。 JsonConvert.DeserializeObject によって提供されるメソッド ニュートンソフト.Json 。このメソッドは動的オブジェクトを返します。これにより、プロパティ構文を使用して JSON データにアクセスできるようになります。

夕食と夕食の時間

方法 2: System.Text.Json 名前空間を使用する

で始まります .NETコア3.0 そして .NET 5.0、 C# には、と呼ばれる組み込みの JSON 解析ライブラリも提供されています。 System.Text.Json 。これは、軽量で高速な JSON シリアライザーおよびデシリアライザーであり、 。ネット ランタイム。

以下は、JSON を解析する方法の例です。 System.Text.Json:

C# コード:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

この例では、 JsonDocument.Parse によって提供されるメソッド System.Text.Json JSON 文字列を解析します。メソッドは、 JsonDocument 解析された JSON データを表すオブジェクト。その後、次を使用して JSON データにアクセスできます。 Json要素 クラスとその プロパティの取得 方法。

あなたはスプライスです

方法 3: JavaScriptSerializer クラスを使用する

C# で JSON を解析するもう 1 つの方法は、 JavaScriptシリアライザー の一部であるクラス System.Web.Extensions 組み立て。このクラスは で導入されました。 NET フレームワーク 3.5 また、JSON データを厳密に型指定されたオブジェクトに逆シリアル化する簡単な方法を提供します。

を使用するには、 JavaScriptシリアライザー クラスを使用するには、逆シリアル化する JSON オブジェクトを表すクラスを作成する必要があります。クラスには、JSON オブジェクトのプロパティの名前とデータ型に一致するプロパティが必要です。たとえば、以下の JSON オブジェクトがあると仮定します。

JSON オブジェクト:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

このオブジェクトを表すクラスは次のように作成できます。

C# コード:

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

クラスを定義したら、 JavaScriptシリアライザー クラスを使用して、JSON データを Person クラスのインスタンスに逆シリアル化します。

Javaクラスの例

C# コード:

 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

上の例では、まず JSON データを含む文字列を定義しました。次に、のインスタンスを作成しました。 JavaScriptシリアライザー クラスを作成し、その Deserialize メソッドを使用して JSON データを解析して Person クラスのインスタンスに変換します。

注目に値するのは、 JavaScriptシリアライザー class には、これまで説明した他の 2 つのメソッドと比べて制限があります。たとえば、null 値の処理や、キャメルケースとパスカルケースの命名規則間の変換など、JSON のより高度な機能の一部はサポートされていません。また、JSON 配列の逆シリアル化のサポートも組み込まれていません。

結論:

この記事では、C# で JSON を解析する 2 つの方法を検討しました。 ニュートンソフト.Json ライブラリとその使用 System.Text.Json 図書館。どちらのライブラリも強力な JSON 解析機能を提供しており、JSON データを使用する C# アプリケーションを構築する開発者によって広く使用されています。