Raised a question to jsonpath google group as I don't know :
https://groups.google.com/forum/#!topic/jsonpath/MUNwbQ2UjTk
Unfortunately their code didn't cover this test case  ;-)


On Thu, Aug 28, 2014 at 11:57 AM, Deven Phillips <[email protected]>
wrote:

> 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
> >
>



-- 
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Reply via email to