JSON また JavaScript オブジェクト表記法 は JavaScript プログラミング言語のサブセットに基づいていますが、言語に依存しないため、JSON パーサーを備えた任意のプログラミング言語で使用できます。使用するには JSON C# プログラミングではデータを変換する必要があります JSON に C#クラス 。これにより、プログラマーはタイプセーフな方法でデータを操作できるようになり、間違いのリスクが軽減され、コードの保守が容易になります。
一緒に働く JSON C# のデータでは、頻繁に変換が必要になります。 JSONデータ の中へ C# クラス 簡単に編集してアプリケーションで使用できます。このチュートリアルでは、変換のプロセスについて説明します。 JSON データを C# クラスに変換する際に役立つコード例を示します。
JSON を C# クラスに変換する方法
変換する手順は、 JSON に C# クラス それは:
ステップ 1: JSON データを分析する
変換の最初のステップ JSON に C#クラス JSON データを分析し、その構造を決定することです。これには、データのキーまたはプロパティと、それらに対応するデータ型を識別することが含まれます。この情報が収集されたら、JSON データを表す対応する C# クラスの作成を開始できます。
ステップ 2: JSON データを表す C# クラスを作成する
の JSON データの名前はクラスの定義に使用されます。このクラス内で、キーに一致するプロパティを定義します。 JSON データ。プロパティのデータ型を、 JSON データ。たとえば、 JSON データが文字列の値を持つ場合は、C# クラスで対応するプロパティを文字列として定義します。
ステップ 3: JSON データを逆シリアル化する
C# クラスを作成した後の次のステップは、 JSON データをクラスインスタンスに追加します。これは、 ニュートンソフト.Json デシリアライズ用の簡単な API を提供するライブラリ JSON データ。をインストールしてインポートする必要があります ニュートンソフト.Json コードで使用するにはパッケージを使用します。のインスタンスを作成します。 Jsonシリアライザー クラスを呼び出して、 デシリアライズ メソッドを渡す JSON データを文字列として、C# クラスをジェネリック型パラメーターとして指定します。
Newtonsoft.Json を使用します。// JSONデータ
文字列json = 「{」 名前 「:」 ジョンスミス 「、」 年 「:30}」 ;
// C # クラス
パブリッククラスの人
{
パブリック文字列名 { 得る; 設定 ; }
public int 年齢 { 得る; 設定 ; }
}
// JSON データを Person オブジェクトに逆シリアル化する
人人 = JsonConvert.DeserializeObject < 人 > ( json ) ;
の JSON この例のデータは、name と age プロパティを持つ単純なオブジェクトであり、C# クラスは同様のプロパティを持つ Person クラスです。 JsonConvert.DeserializeObject 変換するために使用されます JSON データを Person オブジェクトに変換し、アプリケーションで編集して使用できるようにします。
ステップ 4: C# オブジェクトを操作する
デシリアライズ後、 JSONデータ に C# オブジェクト 必要に応じてアプリケーションで操作して使用できます。プロパティを読み取ったり設定したり、メソッドを呼び出したり、オブジェクトをパラメータとして他のプロシージャや関数に提供したりできます。
以下は、 人 前のステップで作成したオブジェクト:
// 人を捕まえる さんの名前文字列名 = 人.名前;
// 人物を設定します' セージ
人物.年齢 = 31 ;
// person オブジェクトのメソッドを呼び出す
person.PrintDetails ( ) ;
この例では、人物オブジェクトを使用して、人物の名前を取得し、年齢を設定し、 印刷詳細 オブジェクトのメソッド。
以下は、その方法を示す完全なコードです。 JSON を C# クラスに変換する 。
システムを使用する;Newtonsoft.Json を使用します。
名前空間 JsonToClassExample
{
クラスプログラム
{
静的ボイドメイン ( 弦 [ 】 引数 )
{
文字列json = @ 「{
'名': 'ラリー',
'姓': 'ケビン',
'住所': {
'ストリート': 'メインストリート',
'都市': 'ヴェネツィア',
}
}' ;
ルートオブジェクト myObject = JsonConvert.DeserializeObject < ルートオブジェクト > ( json ) ;
Console.WriteLine ( 「名前は次のとおりです。」 + myObject.firstName ) ;
Console.WriteLine ( 「姓は:」 + myObject.lastName ) ;
Console.WriteLine ( 「通りは次のとおりです。」 + myObject.address.street ) ;
Console.WriteLine ( 「その都市は次のとおりです。」 + myObject.address.city ) ;
Console.ReadLine ( ) ;
}
}
パブリッククラスのルートオブジェクト
{
パブリック文字列名 { 得る; 設定 ; }
パブリック文字列姓 { 得る; 設定 ; }
パブリックアドレスアドレス { 得る; 設定 ; }
}
パブリッククラスのアドレス
{
パブリックストリングストリート { 得る; 設定 ; }
パブリックストリングシティ { 得る; 設定 ; }
}
}
上記のコードは使用方法を示しています Newtonsoft.Json NuGet パッケージ に デシリアライズ ある JSON 文字列を C# クラスに挿入する 。 JSON 文字列は、個人の姓名および住所 (番地と都市) に関する情報で構成されます。 C# クラスとして、Rootobject クラスと Address クラスは JSON データの構造を確立します。
の JsonConvert.DeserializeObject メソッドは、JSON 文字列を ルートオブジェクト 実例。次に、その属性にアクセスすることで、データがコンソールに表示されます。 ルートオブジェクト およびアドレスクラス。の Console.ReadLine メソッドは、プログラムが終了する前にプログラムを停止するために使用されます。
出力
JSON を C# に変換するその他の方法
をコピーすることもできます JSON データをクリップボードにコピーし、 JSON から C# へのクラス ジェネレーター C# クラスを生成します。オンラインにはいくつかのツールがあります。 Json2Cシャープ と クイックタイプ から C# クラスを生成するのに役立ちます。 JSON データ。を貼り付けます JSON データを適切なフィールドに入力し、ツールに C# クラスを生成させます。このアプローチは簡単かつ迅速です。ただし、学習を目的とする場合は、最初の方法に従う必要があります。
結論
JSON データを C# クラスに変換する の分析が含まれます JSON データを取得し、対応する C# クラスを作成し、JSON データを C# クラス オブジェクトに逆シリアル化します。このプロセスは、 JSON データを C# アプリケーションに保存できるため、データの読み取り、操作、Web サービスや API への送信が容易になります。素早く翻訳するには JSON から C# へ 、次のようないくつかの Web ツールを利用することもできます。 Json2Cシャープ と クイックタイプ 。