JsonPathExtract#
Действие JsonPathExtract позволяет извлекать содержимое элемента JSON объекта с использованием нотации JSON-path (документация на библиотеку приведена на сайте, для проверки JsonPass рекомендуется воспользоваться ссылкой http://jsonpath.herokuapp.com/.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
path |
+ |
Строка |
Выражение json-path, обязательный параметр |
expectedResult |
- |
имя java-класса |
Имя java класса, соответствующего ожидаемому результату, по умолчанию java.lang.String |
allowNotFound |
- |
true/false |
В случае указания значения true, если искомый элемент не найден, то возвращается пустая строка. Иначе выдается ошибка. По умолчанию — true. |
expressions |
- |
Список значений |
Параметр, аналогичный path, указанный в виде списка. |
varReplace |
- |
Строка |
Список переменных, которые нужно вычислить и заменить в expressions и path. |
allowNotFound |
- |
true/false |
В случае указания значения true игнорируется ошибка о том, что не найден результат при поиске. |
Пример:
service:
service_static:
- id: 1
url: /sample
listen:
- port: 8083
chains:
request_chains:
- actions:
- action: JsonPathExtract
params:
path: "$.address.streetAddress"
actions:
- action: SetVarFromMessage
params:
variable: $clj_street
message: $clj_request_body
optional:
response_body: "OK"
response_code: 200
response_headers:
- name: X-Header
value: "$clj_street"
В приведенном примере мы извлекаем из приходящего в теле запроса JSON элемент streetAddress, далее передаем результат в действие SetVarFromMessage, в котором помещаем его значение в переменную clj_street. Данная переменная используется для заполнения заголовка X-Header, который возвращается клиенту в ответе.