Для того чтобы выполнить запись коллекции значений в формате 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-документа