阻止Jackson中的自动String to Integer转换

我有一个简单的POJO:

public class ADate { private Integer day; private Integer month; private Integer year; ... // getters/setters/constructor } 

以下JSON文档正确反序列化为ADate

 { "day":"10", "month":"2", "year":"1972" } 

Jackson自动将String转换为Integer。

有没有办法避免这种自动转换,如果将Integer值定义为String,则让Jackson失败。

我在Jackson github 问题上找到了一些有趣的代码。 改变了一点,这就是我得到的:

 public class ForceIntegerDeserializer extends JsonDeserializer { @Override public int deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { if (jsonParser.getCurrentToken() != JsonToken.VALUE_NUMBER_INT) { throw deserializationContext.wrongTokenException(jsonParser, JsonToken.VALUE_STRING, "Attempted to parse String to int but this is forbidden"); } return jsonParser.getValueAsInt(); } }