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
>

Reply via email to