Comments (5)
Hello, I'll evaluate adding that feature (automatically inject a JsonElement if specified as a parameter on the method). However, I suggest using GsonFireBuilder.registerPostProcessor
since it is more flexible and decouples the post processing logic from the models. You can still have a static class inside your model to handle private fields, for example
public class MyModel {
private String name;
private String nameLowercase;
public static class MyModelPostProcessor implements PostProcessor<MyModel> {
void postDeserialize(MyModel result, JsonElement src, Gson gson) {
result.nameLowercase = result.name.toLowerCase();
}
void postSerialize(JsonElement result, MyModel src, Gson gson) {
//nothing
}
}
}
// In the code you initialize GsonFire
new GsonFireBuilder()
.registerPostProcessor(MyModel.class, new MyModel.MyModelPostProcessor())
Sorry if the code above does not compiles, I did it in a plain text editor.
Let me know if that fixes your issue
from gson-fire.
The PostProcessor would do it but the @PostDeserialize annotation makes more concise and tidier code. The boilerplate of the PostProcessor static class can be skipped and it's simpler to setup the builder by calling .enableHooks() than .registerPostProcessor() because you only need to mention the Model.class, not the PostProcessor too.
(I intend to dynamically generate the calls to .enableHooks() so I don't need to manually list out all the Model classes)
Clearer and simpler code is the reason I'm attracted to gson-fire on top of standard GSON. Thanks BTW :-)
from gson-fire.
Hello, this enhancement was just added in 1.5.0
Let me know if it works for you. Thanks!
from gson-fire.
Hi, yes works great for me, thanks!
from gson-fire.
Nice!
from gson-fire.
Related Issues (20)
- Reuse Exclusion Strategies HOT 11
- Add more powerful wrapping/unwrapping HOT 1
- Reuse Objects HOT 2
- Hooks Exception is not forwarded. HOT 2
- TypeAdapter does not respect `lenient` value HOT 3
- Custom deserialization without deserializer/type adapter? HOT 3
- Custom Deserialization of same field based on it's type
- Preprocessor for Array Insertion HOT 6
- Can't serialize NaN HOT 11
- RFC3339 Parser is wrong HOT 2
- Serialize complex map keys to strings and back HOT 2
- Add OSGi Support HOT 10
- Inconsistent licensing information
- Missing Releases on Github HOT 1
- Check for required fields HOT 1
- Unresolved requirement: Import-Package: com.google.gson.internal.bind HOT 2
- No release tags for versions 1.8.4 and 1.8.5?
- How to exclude a field from serialization?
- update gson from 2.8.6 to version com.google.code.gson:gson:2.8.9 HOT 1
- osgi is not more compatible with new version of gson HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gson-fire.