次の方法で共有


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 データが正しく逆シリアル化されていることがわかります。

サンプルを設定、ビルド、および実行するには

  1. Windows Communication Foundation サンプルのビルド」の説明に従って、ソリューション JsonSerialization.sln をビルドします。

  2. 作成されたコンソール アプリケーションを実行します。