Yeah, I looked for an example similar to my use case in their wiki, unit
tests, etc... Thanks for asking them though!

Deven


On Thu, Aug 28, 2014 at 7:04 AM, Charles Moulliard <[email protected]> wrote:

> 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