Как получить значение из строки JSON с помощью gatling JsonPath.query? - PullRequest
0 голосов
/ 25 июня 2018

С учетом строки:

val json = """{"id":"derp"}"""

Когда я пытаюсь получить значение ID с помощью JsonPath, я получаю пустой итератор

import io.gatling.jsonpath.JsonPath

JsonPath.query("$.id", json).right.get
// Iterator[Any] = empty iterator

Как мне получить значение идентификатора?

1 Ответ

0 голосов
/ 25 июня 2018

Хотя тип второго аргумента JsonPath.query равен Any, эта функция, похоже, не поддерживает несколько типов аргументов.Он не анализирует входную строку, но ожидает, что она уже будет проанализирована.Выглядит немного странно как выбор дизайна.

Итак, предположим, что Джексон используется в качестве библиотеки синтаксического анализатора, будет работать следующее и выбрать значение в ключе id:

val json = """{"id":"derp"}"""
val parsed = new ObjectMapper().readValue(json, classOf[Object])

// to retrieve the ids as a list:
val ids = JsonPath.query("$.id", parsed).right.get.toList

// the only "id" result of the query
val id = ids.head
...