Работа с JSON

Для работы с данными в формате JSON предназначены типы ЧтениеJson и ЗаписьJson. Они обеспечивают потоковое чтение и потоковую запись JSON.

Кроме того, вы можете автоматически преобразовывать в/из JSON многие типы встроенного языка.

Поддержка комментариев

При чтении JSON поддерживаются однострочные комментарии, введенные в версии JSON5 формата JSON.

Комментарий начинается с символов // и заканчивается с концом строки. Содержимое комментария при чтении JSON игнорируется, то есть результат чтения JSON не включает содержимого комментариев и не содержит какой-либо информации о наличии комментариев.

Сериализация в формат JSON и десериализация

«1С:Исполнитель» обеспечивает сериализацию в формат JSON и обратную операцию — десериализацию. Основным типом для выполнения этих операций является СериализацияJson. Экземпляр этого типа вы можете получить из свойства глобального контекста СериализацияJson. Методы этого типа позволяют:

  • прочитать значение JSON в экземпляр типа, поддерживаемого «1С:Исполнителем»ПрочитатьОбъект(),
  • прочитать значение JSON в СоответствиеПрочитатьСоответствие(),
  • прочитать значение JSON в МассивПрочитатьМассив(),
  • записать экземпляр типа, поддерживаемого «1С:Исполнителем», в значение JSON в поток — ЗаписатьОбъект(ПотокЗаписи, Объект, НастройкиЗаписиОбъектовJson),
  • записать экземпляр типа, поддерживаемого «1С:Исполнителем», в значение JSON в строку — ЗаписатьОбъект(Объект, НастройкиЗаписиОбъектовJson): Строка,

Если в структуре описание типа какого-либо поля включает Неопределено (например, пер Поле1: Строка? или пер Поле1: Строка | Неопределено), то при чтении JSON в эту структуру методом СериализацияJson.ПрочитатьОбъект при отсутствии этого поля в JSON полю будет присвоено значение Неопределено.

Для настройки сериализации и десериализации существуют типы настроек со свойствами. Экземпляры этих типов используются в перечисленных выше методах:

  • Тип НастройкиЧтенияОбъектовJson:
    • Кодировка — кодировка, которая будет использована при чтении из потока;
    • ПсевдонимыCвойств — псевдонимы для имени свойства JSON для конкретного свойства структуры;
    • ИгнорироватьНеизвестныеСвойства — признак игнорирования неизвестных (лишних) полей в тексте JSON.
  • тип НастройкиЗаписиОбъектовJson:
    • ИспользуемыеИменаСвойств — устанавливает признак изменения записываемого имени свойства по аналогии с @JsonProperty,
    • ИгнорируемыеСвойства — устанавливает признак игнорирования в результирующем экземпляре JSON определенных свойств,
    • ЗаписьСвойствБезОбработки — свойства, которые будут записаны без обработки («как есть»),
    • РежимЗаписиТипаЗначенияJson — способ записи информации о типе значения.

В типе ЧтениеJson существуют методы для чтения значения JSON в один из конкретных типов:

  • ПрочитатьСодержимоеКакДата(),
  • ПрочитатьСодержимоеКакВремя(),
  • ПрочитатьСодержимоеКакДлительность(),
  • ПрочитатьСодержимоеКакБайты().

Также в ЧтениеJson существуют свойства для определения текущей строки и текущего столбца в позиции чтения:

  • ТекущаяСтрока,
  • ТекущийСтолбец.