Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Сериализация коллекций значений (объектная техника)
Дальше: Чтение в соответствие

Запись и чтение

Для того чтобы выполнить запись коллекции значений в формате JSON, нужен сам объект низкоуровневой записи ЗаписьJSON, собственно, записываемая структура данных. И затем все вышеперечисленные объекты нужно передать в качестве параметров в метод глобального контекста ЗаписатьJSON().

Рассмотрим следующий пример записи в JSON-документ структуры, состоящей из примитивных типов данных (листинг 1.19).

Листинг 1.19. Пример сериализации структуры в JSON-документ

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

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

 

// Создать структуру с данными контрагента.

Данные = Новый Структура;

Данные.Вставить("Контрагент", "ОАО Топаз");

Данные.Вставить("ОбъемПродаж", 5000000);

 

// Добавить элемент структуры Телефоны типа Массив.

Телефоны = Новый Массив;

Телефоны.Добавить("+71112223344");

Телефоны.Добавить("+79998887766");

Данные.Вставить("Телефоны", Телефоны);

Данные.Вставить("Поставщик", Ложь);

 

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

Запись = Новый ЗаписьJSON;

ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб);

Запись.ОткрытьФайл("c:\temp\Serialisation.json",,, ПараметрыЗаписиJSON);

 

// Выполнить запись данных (Данные) с помощью объекта записи (Запись).

ЗаписатьJSON(Запись, Данные);

 

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

Запись.Закрыть();

 

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

В результате сформированный JSON-документ будет иметь следующий вид (листинг 1.20).

Листинг 1.20. Содержимое JSON-документа

{

"Контрагент": "ОАО Топаз",

"ОбъемПродаж": 5000000,

"Телефоны": [

"+71112223344",

"+79998887766"

],

"Поставщик": false

}

Чтение данных в объектной технике выглядит аналогично записи. Рассмотрим пример чтения JSON-документа, содержимое которого показано выше (листинг 1.21).

Листинг 1.21. Пример десериализации структуры из JSON-документа

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

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

 

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

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

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

 

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

Данные = ПрочитатьJSON(Чтение);

 

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

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

 

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

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

Сообщение.Текст = "Контрагент: " + Данные.Контрагент + ", Объем продаж: " + Данные.ОбъемПродаж +

", Поставщик: "+ Данные.Поставщик + ", Телефоны: ";

 

// Обойти в цикле элемент структуры данных Телефоны типа Массив.

Для Каждого Телефон Из Данные.Телефоны Цикл

Сообщение.Текст = Сообщение.Текст + Телефон + ", ";

КонецЦикла;

 

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

 

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

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

Рис. 1.2. Чтение примитивных типов из JSON-документа

Назад: Сериализация коллекций значений (объектная техника)
Дальше: Чтение в соответствие