Details
-
Wish
-
Status: Resolved
-
Minor
-
Resolution: Won't Fix
-
1.1.5
-
None
-
None
Description
In our project, we have a few types that have an Object field that is used to accept a few different types of objects.
- Sometimes the field is an effective primitives (Float, Integer, Long, etc)
- Sometimes they're Collections (List, Set)
- Sometimes they're other custom defined objects
Right now johnzon mapper determines the type of the field based on its defined type "Object" which means just about nothing. This almost always causes serialization issues (with default behavior) unless its null.
We would like to have an annotation (such as @JohnzonDynamic) to indicate the field is dynamic and its type should be determined via introspection of the value, rather than the field's declared type. Similar to how a map's value is done.
For simplicity, this could be considered a read-only field to avoid the complexity of trying to set this field to whatever data comes in during deserialization.
Right now we're working around this via a custom ObjectWriter that converts the object to a map and then passes the map to serialization, which has some inconveniences of maintenance.
Maybe other projects could see some use of this?