Вывод значений из json переменной #REST_Result#

Последние изменения: 28.02.2023

Переменная контекста #REST_Result# используется для сохранения результатов команды Внешний запрос в случае использования REST протокола. Как правило такие REST сервисы возвращают результат в формате json. Для использования реквизитов из переменной с текстом json необходимо сначала их выбрать в отдельные переменные контекста с помощью команды Установка переменной контекста.

Для карточки команды Установка переменной контекста необходимо заполнить поля: 

  • Название - произвольное название. Рекомендуем указывать в заголовке имя устанавливаемой переменной. Например: ClientPhone = REST_Result..phone

  • Код переменной - имя переменной для сохранения в контексте например #ClientPhone#)

  • Код переменной с Json - указывается переменная контекста с текстом json. То есть REST_Result

  • Объект JavaScript - указывается запрос для выбора из json. Например, $..phone.  

Примечания: 

  1. Для отладки запрос к json рекомендуется использовать сервис http://jsonpath.com/

  2. Описание синтаксиса языка запросов доступно по ссылке https://goessner.net/articles/JsonPath/index.html

  3. В случае, если переменная с Json содержит массив, необходимо предварительно преобразовать json к формату с вложенным массивом. Для этого надо использовать команду [Установка переменной контекста] в режиме Формула. Формулу необходимо указать такую
    "{\"result\":#REST_Result#}"

Пример заполнения

?name=inline1885072999.png


Важно: компонент Sherlock Platform и http://jsonpath.com/ используют немного разный синтаксис для запросов. Например если в JsonPath работает запрос $.data[?(@.direction.cityFrom.id=="#id#")], то в Sherlock Platform требуется дополнительная точка. Дополнительно - не нужны кавычки: 

$.data[?(@..direction.cityFrom.id==#id#)]..direction

Помогла ли вам статья?