package message.mvc.convert;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import message.base.convert.ConvertGetter;
import java.io.IOException;
/**
* Jackson序列化枚举时,将枚举变成{value: '', name: ''}.<br/>
* {@link CustomObjectMapper#CustomObjectMapper()}
*
* @author sunhao(sunhao.java@gmail.com)
* @version V1.0, 15/6/24 下午9:31
*/
public class EnumSerializer extends JsonSerializer<ConvertGetter> {
@Override
public void serialize(ConvertGetter value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
if(value instanceof Enum<?>) {
jgen.writeStartObject();
jgen.writeStringField("value", value.getValue());
jgen.writeStringField("name", ((Enum) value).name());
jgen.writeEndObject();
}
}
}