For example I have a POJO defined as below with jackson-core
and jackson-databind
(version 2.8.3) annotations omitting getters and setters for brevity.
class Sample {
private String foo;
private String bar;
private Map<String, Map<String, Object>> data;
}
and I would like to write a custom serializer that takes above POJO and generates
{
"foo":"val",
"bar":"val2",
"data_1": {
"someInt":1
},
"data_2": {
"someBoolean":true
}
}
Here data_1
and data_2
are keys of main Map
and their inner attributes are made up of their sub map (nested map). Also, the actual property data shouldn't be present in resulting JSON at all.
Please note that foo and bar are example of fields, actually the pojo has 15+ fields.
I figured out a simpler way to do this without using the custom serializer; It was with @JsonAnyGetter and @JsonAnySetter. Here is a complete example. I am pasting an answer with respect to sample pasted here as it might be useful for others.
Example