このサンプルでは、DataContractJsonSerializer を使用して、JavaScript Object Notation (JSON) 形式のデータをシリアル化および逆シリアル化する方法を示します。このシリアル化エンジンによって、JSON データを .NET Framework 型のインスタンスに変換したり、また JSON データに戻したりできます。DataContractJsonSerializer では、DataContractSerializer と同じ型をサポートしています。JSON データ形式は、特に Asynchronous JavaScript and XML (AJAX) スタイルの Web アプリケーションを作成するときに便利です。Windows Communication Foundation (WCF) での AJAX サポートは、ScriptManager コントロールを介して ASP.NET AJAX と共に使用できるように最適化されています。ASP.NET AJAX と共に Windows Communication Foundation (WCF) を使用する例については、「AJAX Samples」を参照してください。
![]() |
---|
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。 |
このサンプルでは、シリアル化および逆シリアル化を示すために、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 データが正しく逆シリアル化されていることがわかります。
![]() |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<InstallDrive>:\WF_WCF_Samples
このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Ajax\JsonSerialization
|
サンプルを設定、ビルド、および実行するには
「Windows Communication Foundation サンプルのビルド」の説明に従って、ソリューション JsonSerialization.sln をビルドします。
作成されたコンソール アプリケーションを実行します。