I tried that and I get:
com.jayway.jsonpath.PathNotFoundException: Path '@' not found in the
current context:
{"kind":"full"}
I have tried a number of different permutations for that filter string, but
none have worked so far. Here are a few examples I have tried:
$(@.kind == 'full')
$.kind(@ eq 'full')
$.kind(@ like 'full')
$(@.kind like 'full')
$(kind == 'full')
$.kind == 'full'
None of these match correctly. I have probably tried many others, but you
get the idea.
Thanks for trying!
Deven
On Thu, Aug 28, 2014 at 2:23 AM, Charles Moulliard <[email protected]> wrote:
> Your expressions does not look correct jsonpath("$(@.kind == 'full'). I
> think that it should be .jsonpath("[email protected] == 'full'")
>
>
> On Thu, Aug 28, 2014 at 5:03 AM, Deven Phillips <[email protected]>
> wrote:
>
> > Hi all,
> >
> > As an example, I was using a simple JSON document:
> >
> > {
> > "kind": "full",
> > "type": "customer"
> > }
> >
> > I wanted to use a jsonpath predictate in a choice route as shown below:
> >
> >
> > from("websocket://0.0.0.0:8080/replication")
> > .choice()
> > .when()
> > .jsonpath("$(@.kind == 'full')
> > .log("Full update")
> > .otherwise()
> > .log("Not full update")
> >
> >
> > The problem is that I could not get that to work with jsonpath... I did
> > however get this workaround functional:
> >
> >
> > from("websocket://0.0.0.0:7080/replication")
> > .choice()
> > .when()
> >
> > .javaScript("JSON.parse(request.body).kind.toLowerCase() == 'full'")
> > .log(LoggingLevel.INFO, "Full Update")
> > .otherwise()
> > .log(LoggingLevel.INFO, "Patch/Put");
> >
> > Any ideas as to why the jsonpath method is not working?
> >
> > Thanks in advance!
> >
> > Deven Phillips
> >
>
>
>
> --
> Charles Moulliard
> Apache Committer / Architect @RedHat
> Twitter : @cmoulliard | Blog : http://cmoulliard.github.io
>