Reputation: 49
Can Jackson has a simpler way to deserialize a java object with a list into elements using Annotation?
Instead of this
{
[{id: 1, name: 'a'},{id: 2, name: 'b'}]
}
I want this
{
"1": {name: 'a'},
"2": {name: 'b'}
}
Upvotes: 0
Views: 33
Reputation: 49
I used a custom serializer to do it
public static class CustomListSerializer extends StdSerializer<List> {
public CustomListSerializer() {
this(null);
}
public CustomListSerializer(Class<List> t) {
super(t);
}
@Override
public void serialize(
List list,
JsonGenerator generator,
SerializerProvider provider)
throws IOException, JsonProcessingException {
generator.writeStartObject();
int index = 1;
for (Object item : list) {
generator.writeObjectField(String.valueOf(index), item);
index++;
}
generator.writeEndObject();
}
}
Upvotes: 1