Записывает конец объекта JSON.
Синтаксис
ЗаписатьКонецОбъекта()Примеры платформы
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("Строка");
ЗаписьJSON.ЗаписатьЗначение("Строковое значение");
ЗаписьJSON.ЗаписатьКонецОбъекта();Полное описание, параметры и ограничения
ЗаписьJSON.ЗаписатьКонецОбъекта (JSONWriter.WriteEndObject)
ЗаписьJSON (JSONWriter)
ЗаписатьКонецОбъекта (WriteEndObject)
Доступен, начиная с версии 8.3.6.
Синтаксис:
ЗаписатьКонецОбъекта()
Описание:
Записывает конец объекта JSON.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
ЗаписьJSON = Новый ЗаписьJSON;
// Запись документа JSON
// Запись строковое значение
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("Строка");
ЗаписьJSON.ЗаписатьЗначение("Строковое значение");
ЗаписьJSON.ЗаписатьКонецОбъекта();
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Записать объект с массивом товаров низкоуровневым JSON API
Пошагово формируем структуру JSON и проверяем её обратным чтением. Показываем, почему имя свойства и значение записываются отдельно.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все исходные JSON-строки и значения заданы в коде. Файлы, токены доступа, интернет и рабочая база не нужны.
Не подставляйте в упражнения ответы реального API с персональными данными. Сначала проверяйте неизменённый учебный набор.
Запись = Новый ЗаписьJSON;
Запись.ПроверятьСтруктуру = Истина;
Запись.УстановитьСтроку();
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("items");
Запись.ЗаписатьНачалоМассива();
Для Индекс = 1 По 2 Цикл
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("name");
Запись.ЗаписатьЗначение(?(Индекс = 1, "Книга", "Ручка"));
Запись.ЗаписатьИмяСвойства("quantity");
Запись.ЗаписатьЗначение(?(Индекс = 1, 3, 1));
Запись.ЗаписатьКонецОбъекта();
КонецЦикла;
Запись.ЗаписатьКонецМассива();
Запись.ЗаписатьИмяСвойства("count");
Запись.ЗаписатьЗначение(2);
Запись.ЗаписатьКонецОбъекта();
Текст = Запись.Закрыть();
Сообщить(Текст);
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Текст);
Попытка
Восстановлено = ПрочитатьJSON(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если Восстановлено.items.Количество() <> 2 Или Восстановлено.count <> 2 Тогда
ВызватьИсключение "Нарушена учебная структура JSON";
КонецЕсли;
Сообщить(Восстановлено.items[0].name = "Книга" И Восстановлено.items[0].quantity = 3);Разбор по шагам
Начинаем корневой объект; после имени items начинаем массив, внутри которого создаём два объекта.
ЗаписатьИмяСвойства пишет ключ, ЗаписатьЗначение — значение с нужным типом и экранированием.
Каждое начало объекта или массива имеет соответствующий конец. В конце закрываем запись и получаем строку.
Читаем JSON обратно стандартным десериализатором и проверяем структуру, а не расположение пробелов.
Как проверить результат
Обратное чтение даёт items из двух элементов и числовое count=2.
Последнее сообщение Истина: первый товар Книга с числовым количеством 3.
В отдельной учебной копии пропустите ЗаписатьКонецМассива: при проверке структуры должно возникнуть исключение, а не корректный документ.
Ожидаемый результат
Получен вложенный JSON с корректными типами и проверенной структурой на фиксированном наборе.
На что обратить внимание
Не записывайте числа через Строка(Количество): это изменит JSON-тип на строку.
ПроверятьСтруктуру проверяет последовательность записи, не требования конкретного API к полям.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Записать JSON вручную по шагам
Объект записи позволяет явно задать структуру документа без промежуточной структуры 1С.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Вывод в строку, не в файл.
Вложенный массив должен закрыться раньше внешнего объекта.
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Попытка
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("title");
Запись.ЗаписатьЗначение("Книга");
Запись.ЗаписатьИмяСвойства("tags");
Запись.ЗаписатьНачалоМассива();
Запись.ЗаписатьЗначение("учебник");
Запись.ЗаписатьЗначение("бумага");
Запись.ЗаписатьКонецМассива();
Запись.ЗаписатьКонецОбъекта();
Исключение
Запись.Закрыть();
ВызватьИсключение;
КонецПопытки;
ТекстJSON = Запись.Закрыть();
Сообщить(ТекстJSON);Разбор по шагам
Открываем объект и задаём имя title перед его значением.
Для tags открываем массив и добавляем два значения.
Закрываем вложенный массив, объект, затем объект записи.
Как проверить результат
После чтения JSON поле title равно Книга.
Массив tags содержит два элемента в заданном порядке.
Ожидаемый результат
JSON с title=Книга и tags=[учебник, бумага].
На что обратить внимание
Не отключайте проверку структуры для сокрытия ошибок вложенности.
Ручная запись полезна для потоковых сценариев, но обычную структуру проще сериализовать ЗаписатьJSON.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.