我正在使用带有JAXB注释类的Jackson 2.2.2。我想将枚举序列化为int数字。由于XML(因为我也希望XML的行为相同),所以必须使用@XmlEnumValue等。一切都很好。 为了序列化到JSON,根据Jackson的文档提供了这个注释,但到目前为止还没有运气使其适用于JSON(XML很好)。
@XmlType(name = "Period")
public enum Period {
@XmlEnumValue("11")
DAILY("Daily"),
@XmlEnumValue("1")
WEEKLY("Weekly"),
@XmlEnumValue("2")
SEVENTH_DAY("3");
private final String value;
...
生产的JSON仍然看起来如下:
"OvertimeRates": {
"DAILY": [
{
"AfterHours": -19497,
"Rate": 3.7003279564106983
}
]
},
虽然我希望相反每天我会看到11。
我的代码:
mapper = new ObjectMapper();
JaxbAnnotationModule jaxbAnnotationModule = new JaxbAnnotationModule();
mapper.registerModule(jaxbAnnotationModule);
mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
// mapper.configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
final PosData posData = dataGenerator.getPosData();
try {
mapper.writeValue(new File(PATH_TO_FILE), posData);
} catch (IOException e) {
e.printStackTrace();
}
我尝试使用mapper.configure(SerializationFeature.WRITE_ENUMS_USING_INDEX,false);但这也没有帮助。
知道我错过了什么吗?
TA