MapEntryAsPOJOSerializer.java
package com.fasterxml.jackson.databind.ser.impl;
import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
/**
* Serializer used to serialize Map.Entry as POJOs: that is, as if
* introspected as POJOs so that there's intermediate "key" and "value"
* properties.
*<p>
* TODO: does not fully handle contextualization, type resolution and so on.
*
* @since 2.19
*/
public class MapEntryAsPOJOSerializer extends StdSerializer<Map.Entry<?,?>>
{
private static final long serialVersionUID = 1L;
protected MapEntryAsPOJOSerializer(JavaType type) {
super(type);
}
public static MapEntryAsPOJOSerializer create(SerializerProvider ctxt,
JavaType type)
{
return new MapEntryAsPOJOSerializer(type);
}
@Override
public void serialize(Entry<?, ?> value, JsonGenerator gen, SerializerProvider ctxt)
throws IOException
{
gen.writeStartObject(value);
ctxt.defaultSerializeField("key",value.getKey(), gen);
ctxt.defaultSerializeField("value", value.getValue(), gen);
gen.writeEndObject();
}
}