-
-
Notifications
You must be signed in to change notification settings - Fork 812
support nested property filters #230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Related ticket: https://jira.spring.io/browse/SPR-13622 |
This issue does not belong here as filters are implemented by |
Makes sense, closing this ticket to create one for jackson-databind |
It has been a long time since this above question has raised. Any update on support of nested object property filters using Jackson @jsonfilter. @cowtowncoder |
Problem: If there is a class say Person
How do we dynamically filter specific nested properties: name, address.state, address.zipcode reusing the same object mapper/writer.
One way is to follow the Spring integration to use property filter https://jira.spring.io/browse/SPR-12586. However, nested property filters are not supported. This is because of the way Jackson integration works. This is a very common use case to get only the fields clients are interested in runtime.
There are a few implementations already available that are slow because they lookup the jgen root context to build the nested path every time a property is checked if it can be filtered. These implementations also won't work without explicitly adding JsonFilter annotation on all classes that will be filtered:
https://github.com/PressAssociation/partial-response/tree/master/filter-json-jackson
https://github.com/Antibrumm/jackson-antpathfilter
https://github.com/narusas/SpringMvcJacksonFilter
The following won't work without @jsonfilter("antPathFilter") on all classes
One work around is to explicitly set the same @jsonfilter("antPathFilter") on all classes that are nested, which did not make any sense to me. What if I wanted to support multiple filters at the same time tomorrow?
I also ended up writing my own implementation that is fast and that uses SimplePropertyFilter per class built on the nested properties.
The problem really is the way Jackson APIs requests a filter for current property without any context on the current class owning that property.
https://github.com/krishna81m/jackson-nested-prop-filter
The text was updated successfully, but these errors were encountered: