Как извлечь данные из JSON-строки в 1С:Предприятие?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе обмена данными с внешними веб-сервисами и API часто возникает необходимость обработать ответ в формате JSON. Разберем детально, как преобразовать полученную строку в структуру 1С и корректно достать из нее нужные значения.

Шаг 1. Преобразование JSON-строки в объект 1С

Для начала работы со строкой нам необходимо использовать встроенные средства платформы. Ключевым инструментом является объект ЧтениеJSON. Рассмотрим пошагово, как подготовить данные для дальнейшей работы:


ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ДлиннаяСтрока);
Результат = ПрочитатьJSON(ЧтениеJSON);

После выполнения метода ПрочитатьJSON, ваша строка превращается в иерархическую структуру объектов 1С: массивы JSON становятся объектами типа Массив, а объекты JSON — объектами типа Структура. Это позволяет работать с данными привычными средствами языка 1С.

Шаг 2. Доступ к значениям в структуре и массивах

Самая частая сложность заключается в навигации по вложенным элементам. Поскольку JSON от API (например, DaData) часто содержит массивы (обозначаются квадратными скобками []) и вложенные структуры (обозначаются фигурными скобками {}), важно соблюдать правильный путь к данным.

Рассмотрим конкретный пример обращения к данным из вашего ответа. Чтобы получить КПП организации, необходимо пройти по следующему пути:

1. Обращение к массиву: Так как suggestions является массивом, мы обращаемся к первому элементу через индекс [0].

2. Переход к данным: Внутри элемента находится структура data, а внутри неё — поле kpp.

Итоговый код для получения значений будет выглядеть так:


// Получаем КПП организации
КПП = Результат.suggestions[0].data.kpp;

// Получаем адрес организации
Адрес = Результат.suggestions[0].data.address.value;

Шаг 3. Рекомендации по отладке и безопасности

Разработка интеграций требует внимательности. Чтобы не гадать, какой именно путь прописать в коде, используйте следующие советы:

  1. Используйте отладчик: Поставьте точку останова сразу после выполнения ПрочитатьJSON. Откройте переменную Результат в окне «Табло» или «Вычислить выражение». Раскрывая дерево элементов, вы наглядно увидите, где заканчивается массив и начинается структура. Это лучший способ избежать ошибок в синтаксисе.
  2. Проверяйте заполненность: Никогда не обращайтесь к индексу массива напрямую, если не уверены, что он не пуст. Всегда добавляйте проверку:
    
    Если Результат.suggestions.Количество() > 0 Тогда
        КПП = Результат.suggestions[0].data.kpp;
    КонецЕсли;
    
  3. Используйте метод Свойство(): Если вы не уверены, присутствует ли конкретное поле в ответе API, используйте метод структуры Свойство(). Это защитит программу от ошибки «Поле объекта не обнаружено»:
    
    Данные = Результат.suggestions[0].data;
    Если Данные.Свойство("kpp", ЗначениеКПП) Тогда
        // Работаем со значением
    КонецЕсли;
    

Соблюдая этот алгоритм, вы сможете легко извлекать любые данные из сложных JSON-структур, делая ваши интеграции надежными и предсказуемыми.

← На главную