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