Comments (2)
Hello there,
This: src = src.getAsJsonObject().getAsJsonObject("event");
won't work since you are changing the reference of the variable only the context of the method.
On Gson-Fire 2.0 I was planning to allow the pre and post processors to return a modified version of object, but for now the only way is to mutate the object passed in the method. It looks hacky, but you might want to try something like this:
JsonObject container = src.getAsJsonObject();
JsonObject event = container.getAsJsonObject("event");
container.remove("event");
container.remove("type");
//full copy of the event object to the parent
for(Map.Entry<String, JsonElement> entries: event.entrySet()) {
container.add(entries.getKey(), entries.getValue());
}
Let me know if it works.
from gson-fire.
Thank you for the quick reply. It looks like that would work, though in this particular case I actually ended up doing like this without using regiserTypeSelector
JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse((String) serialized).getAsJsonObject();
JsonObject jsonEvent = jsonObject.getAsJsonObject("event");
String type = jsonObject.getAsJsonPrimitive("type").getAsString();
Event e = (Event) gson.fromJson(jsonEvent, getClazz(type));
Whereas getClazz checks the type to return.
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.