Сложные переменные

Как работает парсер сложных переменных

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

Запрос во вне

Пример

При получении строк из Google мы получили такой ответ:

{
    "message":"Строки найдены и возвращены",
    "rows_indexes":[1,2],
    "count_rows":2,
    "not_found":0,
    "row_values":[
        ["04.10.2021","А","р.1 092,36"],
        ["04.10.2021","Б","р.752,68"],
    ],
    "result_code":1
}

Если у вас ответ пришел сплошным текстом, можете воспользоваться сервисами для форматирования: https://beautifytools.com/json-beautifier.php

В строках лежат значения в таком виде:

Как получить конкретное значение по строке из ответа?

Сначала покажем на готовом примере:

где i - переменная, в которую пришел ответ от интеграции.

Вот так это выглядит в блоке сообщения:

И вот в таком виде сообщение придет получателю:

Принцип работы

Переход внутрь JSON структуры осуществляется через символ точки. То есть, если в переменной i лежит структура:

то, чтобы получить message, нам нужно составить переменную {%i.message%}. Чтобы получить result_code - нужно написать {%i.result_code%}

Точка «.» является как бы указателем, что нужно копнуть «вглубь» или «перейти на уровень вложенности ниже»

В блоке сообщения это выглядит так:

Массивы

Получить элемент из массива можно по такому же принципу. Помните, что индекс массива начинается с 0. То есть, значение первого элемента получается через индекс 0.

Вот пример массива row_values:

Как понять, что это массив - после названия стоит квадратная скобка [. Каждая открывающаяся скобка - новый массив, элементы в котором пронумерованы от 0.

Если мы просто напишем {%i.row_values%} - получим такой текст (он будет без пробелов, здесь показано отформатировано, чтобы лучше читалось):

Теперь, чтобы получить элементы первой строчки, нужно добавить к нашей переменной символ 0.

Вот так получится при {%i.row_values.0%}

Уже почти добрались до элемента. По такой же логике добавляем порядковый номер (индекс) нужного нам элемента.

Например, мы хотим получить дату.

Пишем: {%i.row_values.0.0%}

Получаем:

Отлично. Логика по остальным элементам схожая:

Ремарка от разработчика

Если вы поняли логику работы сложных переменных, то я вас искренне поздравляю: вы можете по праву считаться продвинутым человеком в мире автоматизации и ботов :)

Функционал довольно сложный для понимания "с ходу", но предоставляет огромный простор действий. Советую просто попробовать и посмотреть, как это работает, чтобы на практике научиться всем тонкостям.

Удачи в ваших проектах!

Last updated

Was this helpful?