Работа с JSON
Для работы с форматом JSON «1С:Предприятие.Элемент Скрипт» предоставляет специальные типы, основными из которых являются СериализацияJson, ЧтениеJson и ЗаписьJson. Вы можете автоматически преобразовать в/из JSON большинство типов языка «1С:Элемент».
Эти и другие встроенные средства позволяют осуществлять потоковую, объектную или смешанную формы работы с форматом JSON:
- При потоковой работе документ JSON не загружается в память целиком, а считывается по частям. Программа при этом осуществляет навигацию по структуре документа в соответствии с настройками, указанными пользователем. Такой способ удобен при работе с файлами большого размера и/или сложной структурой вложенности объектов.
- При объектной работе документ JSON загружается в память целиком и считывается в объект, например, соответствие или структуру данных. Такой способ удобен, когда требуется передавать данные как простой и относительно небольшой объект, поэтому объекты JSON используются в основном в API.
- При смешанной работе программа осуществляет навигацию по структуре документа потоковым способом, но, когда доходит до требуемого объекта, загружает его объектным способом.
Для тех, кто использует JSON версии JSON5 и выше (в которых поддерживаются однострочные комментарии)
Комментарий начинается с символов // и заканчивается с концом строки. Содержимое комментария при чтении JSON игнорируется, то есть результат чтения JSON не включает содержимого комментариев и не содержит какой-либо информации о наличии комментариев.
Потоковый режим работы с JSON
Для потокового ввода и вывода данных используются типы ЧтениеJson и ЗаписьJson.
В типе ЧтениеJson существует метод для чтения значения JSON в указанный тип:
ПрочитатьСодержимое(), который использует обобщенный тип данных и принимает как аргумент объект типаНастройкиЧтенияОбъектовJson, как и в примере выше дляСериализацияJson.
Кроме того, существуют методы для чтения значения JSON в один из конкретных типов:
ПрочитатьСодержимоеКакБайты(),ПрочитатьСодержимоеКакБулево(),ПрочитатьСодержимоеКакВремя(),ПрочитатьСодержимоеКакДата(),ПрочитатьСодержимоеКакДатаВремя(),ПрочитатьСодержимоеКакДлительность(),ПрочитатьСодержимоеКакМассив(),ПрочитатьСодержимоеКакМомент(),ПрочитатьСодержимоеКакСоответствие(),ПрочитатьСодержимоеКакСтроку(),ПрочитатьСодержимоеКакУуид(),ПрочитатьСодержимоеКакЧисло().
Объектный режим работы с JSON
Для объектной работы с данными используются механизмы сериализации и десериализации. Сериализация используется для перевода структуры данных в формат, позволяющий передавать или хранить эти данные, например, в файле. Десериализация — обратная процедура. В «1С:Предприятие.Элементе Скрипте» для этого используется тип СериализацияJson. Методы этого типа позволяют выполнить сериализацию (метод ЗаписатьОбъект() и др.) в поток или строку или десериализацию (метод ПрочитатьОбъект() и др.).
При сериализации порядок разбора значений следующий:
-
Для 4-х простых базовых типов записывается только значение:
При десериализации порядок разбора значений следующий:
-
Нетипизированное чтение:
Сначала предпринимается попытка разобрать значения 4-х простых базовых типов:
И 2-х сложных:
Если разобрать значение не удалось, то будет выброшено исключение чтения JSON.
-
Типизированное чтение:
Сначала предпринимается попытка разобрать значения 4-х простых базовых типов, если указаны они или их базовые типы:
Если разобрать значение не удалось, то будет осуществляться обход всех доступных типов значения. Если в результате обхода значение разобрать удалось, но сразу несколькими типами, то будет выброшено исключение о неявном чтении.
Смешанный режим работы с JSON
При смешанной работе с JSON могут использоваться как типы ЧтениеJson и