Как использовать точечную навигацию в Джексоне JsonNode - PullRequest
4 голосов
/ 15 апреля 2020

У меня есть следующий код:

 private val parsed = ObjectMapper().readTree(vcap)
 parsed.get("spaces")?.firstOrNull()?.get("block1")?.asText()

Я хотел бы использовать точечную нотацию для навигации (для удобства чтения). Что-то вроде:

 private val parsed = ObjectMapper().readTree(vcap)
 parsed.get("spaces[0].block1")?.asText()

Возможно ли это?

1 Ответ

1 голос
/ 15 апреля 2020

Если вы используете Джексон больше 2.3, тогда вы можете просто использовать JsonPointer выражение

parsed.at("/spaces/0/block1")?.asText()

Если вы хотите использовать точечную навигацию, которая под названием json pathing, который вы можете использовать Jayway JsonPath

ReadContext ctx = JsonPath.parse(vcap);
ctx.read("$.spaces[0].block1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...