kandi X-RAY | jsonfilter Summary
kandi X-RAY | jsonfilter Summary
A simple POJO property filter for Resful JSON output bases on fastjson and springboot.
Top functions reviewed by kandi - BETA
- Implements serialization
- Returns a map containing the names of excludes that should be matched
- Gets the includes
- Gets the json value
- Validates the body write
- Handle annotations and exclude field
- Set the JsonObject
- Apply to exclude
- Is the given map empty
- The address2
- Set the list of addresses to send
- Method to customize the address
- Get a user
- Create a JSON representation of two users
- Add custom converters
- Main entry point
jsonfilter Key Features
jsonfilter Examples and Code Snippets
Trending Discussions on jsonfilter
Scenario: A community webapp where people can form communities about certain topics with a Spring REST backend.
Today I was wondering how one would implement a setting akin "Who can see your email adress". When a User enters a community and a REST call to e.g. /api/community/1/users is being made, how would it be possible to stop the CrudRepository from serializing a field such as email of User B if the user A making the API call to the backend is not a friend / does not fulfill certain criteria of user B's settings, such as only showing emails to approved contacts. The resulting JSON should contain a list of users with some having a email field and some not.
While searching I was not able to find anything that matches my question. Following are some things I have discovered but don't feel like they are of much help.
Annotating Controller methods / Repository methods with @PreAuthorize, passing in the Principal. Why I think this might not help: This seems to be a good solution if I want to block someone based on their ID from viewing a ressource completely. Such as Users only being able to see their own data but not others because the Principal ID does not match the requested ressource's id.
Using JsonFilter as described here: https://www.baeldung.com/jackson-serialize-field-custom-criteria With this approach I don't see a way of checking WHO is making a request for e.g. my email. This approach seems to fit well for a scenario such as having a boolean flag set to show email or not, for all cases and any requesters.
Creating a new domain object such as "Friend" extending "User", which is only there for overwriting the @JsonIgnore property of User. While a normal User would not have their Email field serialized due to @JsonIgnore, a friend would set @JsonIgnore(false) over email. I dont like this approach because I feel like it must somehow be possible to implement this functionality without creating new classes only to overwrite Jackson annotations.
Sorry if there isn't any code to show. So far I have only been creating simple entities and mostly theorycrafting how it would be possible to accomplish the above when I saw that the repository exposes everything. I'm usually more home at the Frontend side of things but I want to learn backend with Spring as well, for private as well as professional reasons. I hope the question isn't too basic.
Thank you in advance....
ANSWERAnswered 2021-May-07 at 21:42
Probably, not the simplest way to implement it. But maybe it will help you to decompose a problem and find an appropriate solution.
I assume that you just want to clear fields on API level, but still gonna fill it in your Objects.
Let's define a model with some security metadata on it:
Here's my scenario:
- I have a deep compositional tree of POJOs from various classes. I need to write a utility that can dynamically process this tree without having a baked in understanding of the class/composition structure
- Some properties in my POJOs are annotated with a custom annotation
@PIIData("phone-number")that declares that the property may contain PII, and optionally what kind of PII (e.g. phone number)
- As a byproduct of serializing the root object, I'd like to accumulate a registry of PII locations based on their JSON path
Desired data structure:path type household.primaryEmail email-address household.members.cellNumber phone-number household.members.firstName first-name household.members.cellNumber phone-number
I don't care about the specific pathing/location language used (JSON Pointer, Json Path).
I could achieve this with some reflection and maintenance of my own path, but it feels like something I should be able to do with Jackson since it's already doing the traversal. I'm pretty sure that using Jackson's attributes feature is the right way to attach my object that will accumulate the data structure. However, I can't figure out a way to get at the path at runtime. Here's my current Scala attempt (hackily?) built on top of a filter that is applied to all objects through a mixin:...
ANSWERAnswered 2021-Mar-04 at 01:43
Okay, found it. You can access the recursive path/location during serialization via JsonGenerator.getOutputContext.pathAsPointer(). So by changing my code above to the following:
I'm trying to filter an incoming JSON by it's value. This is the current JSON that I generate by receiven a huge JSON from an jira api. I have a few POJO classes that handle the response and get only the fields I need for now. But I need the "fromString" and "toString" keys which only contain a handful Strings, like "To Do", "Done", "QA To Do". I tried using FilterProvider but I don't know how to filter by value and then add it to my GetMapping.
This is my current GetMapping in my controller class, which creates a response and filters the items only for the key "fromString":...
ANSWERAnswered 2021-Jan-18 at 17:27
You will need to write your own Filter that uses a comparator that suits your needs.
I have Ag grid with Angular in my project and I added filters to the grid....
ANSWERAnswered 2020-Sep-16 at 06:22
You can use setModel method for filter
I want to use jsonfilter to read the required key from my json file.
My json file content is:...
ANSWERAnswered 2020-Aug-06 at 05:49
I had same problem. Finally I found out that there is also another syntax:
cat test.json | jsonfilter -e '@["root-bin"]
It works for me.
The help page of jsonfilter also refers to this page as allowed patterns https://goessner.net/articles/JsonPath/. You cat try to check it.
I have this problem when I try to save a file in my GUI with qfiledialog. I don't know why, but as I click on the save_button widget, the file dialog opens, I type in a file name and click save, but my variable saveFileName remains empty after the process, so my program always stops there. I do not click on cancel! I really click on save, so how can getSaveFileName() return an empty string? Thank you!!...
ANSWERAnswered 2020-Jun-26 at 19:02
You aren't checking the correct variable's value. Maybe it is just a typo, but it should be
saveFileName instead of
fileName. Try something like this:
Here is a sample of my JSON post:...
ANSWERAnswered 2020-Feb-20 at 05:16
You can unmarshal that json into the following struct:
No vulnerabilities reported
Reuse Trending Solutions
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page