Прочитать JSON с ключами, содержащими дефис

Учебные задачи

Для ответа внешнего сервиса с нестандартными именами полей используем Соответствие.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. JSON задан строкой, запрос в интернет не выполняется.

  2. Второй параметр ПрочитатьJSON — Истина.

Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку("{""item-id"":""A-01"",""price-rub"":150}");
Попытка
    Данные = ПрочитатьJSON(Чтение, Истина);
Исключение
    Чтение.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Код = Данные.Получить("item-id");
Цена = Данные.Получить("price-rub");
Если ТипЗнч(Код) <> Тип("Строка") Или ТипЗнч(Цена) <> Тип("Число") Тогда
    ВызватьИсключение "Неверный формат ответа";
КонецЕсли;
Сообщить(Код);
Сообщить(Цена);

Разбор по шагам

  1. Читаем объект JSON в Соответствие.

  2. Получаем значения по строковым ключам с дефисами.

  3. Проверяем типы перед дальнейшими вычислениями.

Как проверить результат

  1. Результат A-01 и 150.

  2. Если price-rub превратить в строку, должна возникнуть ошибка Неверный формат ответа.

Ожидаемый результат

Код товара A-01 и числовая цена 150.

На что обратить внимание

  1. JSON null и отсутствующий ключ требуют отдельного правила обработки.

  2. Не обращайтесь Данные.price-rub: это не допустимое имя свойства структуры.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.