你可以在下就像建立一个有序枚举:
public enum Color {
Green,
Blue,
Red
//and so on
}
那么你就需要一个定制的解串器,你只需要像做下一个(指定field name
将键和writeString
与色彩值):
public class ColorSerializer extends StdSerializer<Color> {
public ColorSerializer() {
this(null);
}
public ColorSerializer(Class<Color> t) {
super(t);
}
public void serialize(Color value, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
gen.writeStartObject();
gen.writeFieldName("val");
gen.writeString(value.toString());
gen.writeEndObject();
}
}
您必须指定使用上述颜色枚举作为一个注解@JsonSerialize
使用该序列化您的枚举:
@JsonSerialize(using = ColorSerializer.class)
public enum Color {
//....
}
最后,您必须在colorName
类型属性更改为Color
枚举类型,而不是字符串和注释为Enumarted序式(JPA)
@Enumerated(EnumType.ORDINAL)
Color color;
来源
2016-11-09 08:36:46
Pau
为此,你需要定义你的定制序列。请看看http://stackoverflow.com/questions/34297506/how-can-i-serialiize-deserialize-a-boolean-value-from-fasterxml-jackson-as-an-in –
使用自定义解串器或自定义setColorName()方法 –