この記事では、 JsonSerialization サンプルについて説明します。
注
このサンプルは、 DataContractJsonSerializer用です。 JSON のシリアル化と逆シリアル化を伴うほとんどのシナリオでは、 System.Text.Json 名前空間の API をお勧めします。
DataContractJsonSerializer は、 DataContractSerializerと同じ型をサポートします。 JSON データ形式は、非同期 JavaScript および XML (AJAX) スタイルの Web アプリケーションを記述する場合に特に便利です。 Windows Communication Foundation (WCF) での AJAX サポートは、ScriptManager コントロールを介して ASP.NET AJAX で使用できるように最適化されています。 ASP.NET AJAX で Windows Communication Foundation (WCF) を使用する方法の例については、 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ソリューションをビルドします。
結果のコンソール アプリケーションを実行します。