Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье описывается пример JsonSerialization.
Замечание
Этот пример предназначен для DataContractJsonSerializer. В большинстве сценариев, связанных с сериализированием и десериализацией JSON, рекомендуется использовать API в пространстве имен System.Text.Json.
DataContractJsonSerializer поддерживает те же типы, что DataContractSerializerи . Формат данных JSON особенно полезен при написании веб-приложений в стиле JavaScript и XML (AJAX). Поддержка AJAX в Windows Communication Foundation (WCF) оптимизирована для использования с ASP.NET AJAX с помощью элемента управления ScriptManager. Примеры использования 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 были десериализованы правильно.
Чтобы настроить, собрать и запустить пример
Создайте решение JsonSerialization.sln, как описано в разделе "Создание примеров Windows Communication Foundation".
Запустите полученное консольное приложение.