DataContractJsonSerializer 示例
本文介绍 JsonSerialization 示例。
注意
此示例适用于 DataContractJsonSerializer。 对于涉及序列化和反序列化 JSON 的大多数方案,我们建议使用 System.Text.Json 命名空间中的 API。
DataContractJsonSerializer 支持同一类型,如 DataContractSerializer。 JSON 数据格式在编写异步 JavaScript 和 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 数据已正确反序列化。
设置、生成和运行示例
按照生成 Windows Communication Foundation 示例中所述生成解决方案 JsonSerialization.sln。
运行生成的控制台应用程序。