DataContractJsonSerializer 範例

本文說明 JsonSerialization 範例

注意

此範例適用於 DataContractJsonSerializer。 對於涉及序列化和還原序列化 JSON 的大部分案例,我們建議使用 System.Text.Json 命名空間中的 API。

DataContractJsonSerializerDataContractSerializer 支援相同的型別。 當撰寫 Asynchronous JavaScript and XML (AJAX) 型 Web 應用程式時,JSON 資料格式特別有用。 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 資料是否已正確地還原序列化。

若要設定、建置及執行範例

  1. 依照建置 Windows Communication Foundation 範例所述,建置方案 JsonSerialization.sln。

  2. 執行產生的主控台應用程式。