DataContractJsonSerializer サンプル
この記事では、JsonSerialization サンプルについて説明します。
Note
これは DataContractJsonSerializer のサンプルです。 JSON のシリアル化と逆シリアル化が関連するほとんどのシナリオでは、System.Text.Json 名前空間の API をお勧めします。
DataContractJsonSerializer では、DataContractSerializer と同じ型をサポートしています。 JSON データ形式は、特に Asynchronous JavaScript and XML (AJAX) スタイルの Web アプリケーションを作成するときに便利です。 Windows Communication Foundation (WCF) の AJAX サポートは、ScriptManager コントロール経由で ASP.NET AJAX と共に使用するために最適化されています。 Windows Communication Foundation (WCF) を ASP.NET AJAX と共に使用する方法の例が必要であれば、AJAX サンプル ページを参照してください。
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。
このサンプルでは、シリアル化および逆シリアル化を示すために、Person
データ コントラクトを使用しています。
[DataContract]
class Person
{
[DataMember]
internal string name;
[DataMember]
internal int age;
}
Person
型のインスタンスを JSON にシリアル化するには、最初に DataContractJsonSerializer を作成し、次に WriteObject
メソッドを使用して JSON データをストリームに書き込みます。
Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
メモリ ストリームには有効な JSON データが含まれています。
{"age":42,"name":"John"}
このサンプルでは、JSON データからオブジェクトへの逆シリアル化を示します。 次に、ストリームを巻き戻し、ReadObject
を呼び出します。
Person p2 = (Person)ser.ReadObject(stream1);
p2
オブジェクトを調べることで、JSON データが正しく逆シリアル化されていることがわかります。
サンプルを設定、ビルド、および実行するには
「Windows Communication Foundation サンプルのビルド」の説明に従って、ソリューション JsonSerialization.sln をビルドします。
作成されたコンソール アプリケーションを実行します。