Хотя тип второго аргумента 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