On Tue, Sep 19, 2023 at 10:31 AM Dai MIKURUBE <dmikur...@acm.org> wrote:
>
> Hi,
>
> I have a sequence of multiple JSONs in a stream, and wanted to filter the 
> sequence by FilteringParserDelegate / JsonPointerBasedFilter.
>
> It works in normal matching cases. But, I wanted to raise an error when a 
> matching property does not exist.

Sounds reasonable.

>
> For example, in the following case :
>
>         JsonParser parser = new FilteringParserDelegate(
>                 
> factory.createParser("{\"foo\":{\"bar\":\"baz\"}}{\"xxx\":{\"yyy\":\"zzz\"}}{\"foo\":{\"bar\":\"qux\"}}"),
>                 new JsonPointerBasedFilter("/foo"),
>                 TokenFilter.Inclusion.ONLY_INCLUDE_ALL,
>                 true
>                 );
>
> This |parser| returns {"bar":"baz"}, and {"bar":"qux"}, with just skipping 
> {"xxx":{"yyy":"zzz"}}.
>
> Here, I wanted to raise an error (Exception) while reading 
> {"xxx":{"yyy":"zzz"}}.
>
>
> Does anyone know how to realize it?  I'm ready to write my own TokenFilter, 
> or to expand JsonPointerBasedFilter by myself.

I haven't done this, but looking at `JsonPointerBasedFilter` I would
probably try overriding `includeProperty()` method to catch the case
of non-match. Note that you'd also need to override `includeElement`,
and for both make sure to construct an instance of your own sub-class.
I think that should allow you to do what you want.
I'll also file an issue for minor improvement for
`JsonPointerBasedFilter` to make sub-classing bit safer.

-+ Tatu +-


>
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "jackson-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jackson-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jackson-user/6acc6b25-7292-4b31-a08f-8f541a075158n%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jackson-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/CAL4a10jR5MgpgF8YBzG%2BRZMZFv9%2Br_WCqgCadNERRTaNH7QiDw%40mail.gmail.com.

Reply via email to