Перейти к основному содержимому

JsonОбъект

Стд::Json::JsonОбъект

Места применения: Тип

Аннотация JSON. Содержит настройки чтения-записи структур в виде объектов JSON.

Сравнение

Ссылочное

Иерархия типа

Базовые типы: Аннотация, Объект


Примеры

Общие примеры

Работа с данными необходимыми для доставки заказа клиенту

@JsonОбъект(ПропускатьПустыеЗначения = Истина, ИгнорироватьНеизвестные = Истина)
структура КонтактыКлиента
пер Имя: Строка
пер Телефон: Строка
пер Регион: Строка = "Москва"
пер Комментарий: Строка?
пер СогласиеНаРассылки: Булево = Истина
;

Чтение:

Предположим, что при чтении структуры из JSON могут быть получены данные в устаревшем формате. Рассмотрим пример с дополнительным полем, которое сейчас не используется - "срокЗаказа".

{
"Имя": "Петр",
"Телефон": "+7 (999) 999-99-99",
"Комментарий": null,
"СрокЗаказа": "31.12.2023"
}
метод ПрочитатьДанныеСУчетомИнициализацииОтсутствующихПолей(ТекстJson: Строка)
пер Результат = СериализацияJson.ПрочитатьОбъект(ТекстJson, Тип<КонтактыКлиента>)
/* значение: {
Имя = Петр,
Телефон = +7 (999) 999-99-99,
Регион = Москва,
Комментарий = undefined,
СогласиеНаРассылки = Истина
} */
;

Таким образом, при чтении отсутствующее поле "срокЗаказа" было проигнорировано без выбрасывания ИсключениеЧтенияJson. Отсутствующие в JSON поля "регион" и "согласиеНаРассылки" были инициализированы значениями по умолчанию.

Запись:

При записи мы хотим облегчить получившийся объект JSON пропуская все пустые поля, а также поля значение которых неопределено.

метод ЗаписатьСтруктуруСУчетомИнициализацииОтсутствующихПолей()
пер Контакты = новый КонтактыКлиента(
"Василий",
"+7 (999) 999-99-99",
"",
Undefined,
Ложь
)

пер Результат = СериализацияJson.ЗаписатьОбъект(Контакты)
;

Значение результата:

{
"Имя": "Василий",
"Телефон": "+7 (999) 999-99-99",
"СогласиеНаРассылки": false
}

Параметры

ИгнорироватьНеизвестные

ТолькоЧтение

ИгнорироватьНеизвестные

Признак игнорирования неизвестных полей встреченных при чтении текста.


ПропускатьПустыеЗначения

ТолькоЧтение

ПропускатьПустыеЗначения

Признак игнорирования пустых коллекций или неопределенных полей в тексте JSON.

При записи: пропускать свойства с пустыми коллекциями, а также свойства со значением Неопределено.

При чтении:

  • инициализировать отсутствующие поля структур явными значениями инициализации.
  • инициализировать отсутствующие поля структур неявными значениями инициализации. Неопределено имеет приоритет.
  • инициализировать пустые коллекции полей структур

При отсутствии у встреченного типа значения по умолчанию будет выброшено ИсключениеЧтенияJson.


РежимЗаписиТипа

ТолькоЧтение

РежимЗаписиТипа

Настройка записи информации о типе значений.


Список унаследованных методов

Объект

ВСтроку

ПолучитьТип

Представление