Eu utilizo o jsonpath para realizar o split e para filtrar a informação, porém não consigo utilizá-lo para capturar um valor.
from("direct:rest")
.routeId("route-rest")
.convertBodyTo(String.class)
.split().jsonpath("$.*[?(@.id > 71)]")
//gostaria de obter o valor na linha abaixo.
// .setProperty("moeda", jsonpath("$.[1].moeda"))
.log("1 - ${body}")
.marshal().json(JsonLibrary.Gson)
.log("2 - ${body}")
.to("http4://localhost:9200/rf/valores");
Alguém já capturou um valor utilizando jsonpath ou algum recurso similar?
Boa Tarde!
Consegui uma forma de armazenar o valor no property usando json.
Segue exemplo abaixo:
from("direct:rest").routeId("route-rest")
.convertBodyTo(String.class).split().jsonpath("$.*[?(@.id > 1)]")
.marshal().json(JsonLibrary.Gson)
.setProperty("id").jsonpath("$.id")
.setProperty("moeda").jsonpath("$.moeda")
.setHeader(Exchange.HTTP_METHOD, constant(HttpMethods.PUT))
.setHeader(Exchange.HTTP_URI, simple("http4://localhost:9200/rf/valores/${property.id}_${property.moeda}"))
.to("http4://localhost:9200");
Com xml:
setProperty("pedidoId", xpath("/pedido/id/text()"))
Com Json:
setProperty("pedidoId").jsonpath("$.id")