Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Запись
Дальше: Десериализация прикладных типов с помощью функции восстановления

Чтение

Общие принципы десериализации также связаны с использованием механизма XDTO. В частности:

Десериализация прикладных типов из JSON-документа происходит с помощью метода ПрочитатьJSON() объекта глобального контекста СериализаторXDTO. При этом может быть либо указан тип считываемого значения, либо нет – в зависимости от того, указан ли тип прикладного объекта при сериализации.

Например, чтение JSON-документа, содержимое которого показано в листинге 1.46, может быть выполнено без указания типа считываемого значения (листинг 1.49).

Листинг 1.49. Пример десериализации элемента справочника из JSON-документа без указания типа

&НаСервереБезКонтекста

Процедура ДесериализацияПрикладныхТиповНаСервере()

 

// Создать объект чтения и открыть файл, из которого будет выполняться чтение.

Чтение = Новый ЧтениеJSON;

Чтение.ОткрытьФайл("c:\temp\SerialisationXDTO.json");

 

// Выполнить чтение данных в структуру Данные с помощью объекта чтения (Чтение).

Данные = СериализаторXDTO.ПрочитатьJSON(Чтение);

 

// Завершить работу с файлом.

Чтение.Закрыть();

 

// Вывести результат чтения в сообщение.

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Код: " + Данные.Code + ", ФИО: " + Данные.Description + ", ДР: "+ Данные.ДатаРождения +

", Детей: " + Данные.КоличествоДетей + ", Работает: " + Данные.Работает + ", Стаж: " + Данные.Стаж;

Сообщение.Сообщить();

 

КонецПроцедуры

Результат чтения элемента справочника Сотрудники из JSON-документа будет выглядеть следующим образом (рис. 1.9).

Рис. 1.9. Чтение элемента справочника из JSON-документа

Если же тип прикладного объекта не указан при сериализации (см. листинги 1.47, 1.48), то при чтении JSON-документа тип считываемого значения должен быть указан в методе ПрочитатьJSON() объекта СериализаторXDTO (листинг 1.50).

Листинг 1.50. Пример десериализации элемента справочника из JSON-документа с указанием типа

&НаСервереБезКонтекста

Процедура ДесериализацияПрикладныхТиповНаСервере()

 

// Создать объект чтения и открыть файл, из которого будет выполняться чтение.

Чтение = Новый ЧтениеJSON;

Чтение.ОткрытьФайл("c:\temp\SerialisationXDTO_2.json");

 

// Выполнить чтение данных в структуру Данные с помощью объекта чтения (Чтение).

Данные = СериализаторXDTO.ПрочитатьJSON(Чтение, Тип("СправочникОбъект.Сотрудники"));

 

// Завершить работу с файлом.

Чтение.Закрыть();

 

// Вывести результат чтения в сообщение.

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Код: " + Данные.Code + ", ФИО: " + Данные.Description + ", ДР: "+ Данные.ДатаРождения +

", Детей: " + Данные.КоличествоДетей + ", Работает: " + Данные.Работает + ", Стаж: " + Данные.Стаж;

Сообщение.Сообщить();

 

КонецПроцедуры

Назад: Запись
Дальше: Десериализация прикладных типов с помощью функции восстановления