共用方式為


DataContractJsonSerializer 範例

本文說明 JsonSerialization 範例

備註

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

DataContractJsonSerializer 支援與 DataContractSerializer相同的型別。 撰寫異步 JavaScript 和 XML(AJAX)樣式 Web 應用程式時,JSON 數據格式特別有用。 Windows Communication Foundation 中的 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. 執行產生的主控台應用程式。