Поделиться через


Сериализация JSON

В этом образце показано, как с помощью объекта DataContractJsonSerializer сериализовать и десериализовать данные в формате JavaScript Object Notation (JSON). Механизм сериализации преобразует данные JSON в экземпляры типов .NET Framework и обратно в данные JSON. DataContractJsonSerializer поддерживает те же типы, что и DataContractSerializer. Формат данных JSON бывает особенно полезен при написании веб-приложений AJAX (Asynchronous JavaScript and XML). Поддержка технологии AJAX в Windows Communication Foundation (WCF) оптимизирована для использования в ASP.NET AJAX с помощью элемента управления ScriptManager. Примеры использования Windows Communication Foundation (WCF) с ASP.NET AJAX см. в разделе AJAX Samples.

Bb410770.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

В этом образце для демонстрации сериализации и десериализации используется контракт данных 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 были десериализованы правильно.

Bb410770.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Ajax\JsonSerialization

Настройка, построение и выполнение образца

  1. Выполните построение решения JsonSerialization.sln, как описано в разделе Построение образцов Windows Communication Foundation.

  2. Запустите получившееся консольное приложение.