你可以在下就像建立一個有序枚舉:
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()方法 –