本文說明 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 資料已正確反序列化。
若要設定、建置並執行這個範例
如 建置 Windows Communication Foundation 範例中所述,請建置解決方案 JsonSerialization.sln。
執行產生的主控台應用程式。