下面列出了com.fasterxml.jackson.databind.DeserializationContext#handleWeirdStringValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Long deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
// Input is already a long, just return value directly.
if (p.hasToken(JsonToken.VALUE_NUMBER_INT)) {
return p.getLongValue();
}
// Try to convert input to an Instant, else throw an InvalidFormatException.
if (p.hasToken(JsonToken.VALUE_STRING)) {
try {
return Instant.parse(p.getText()).toEpochMilli();
} catch (DateTimeParseException ignored) {
return (Long) ctxt.handleWeirdStringValue(Long.class, p.getText(), "Cannot convert to valid Instant timestamp");
}
}
// Cannot handle input, throw a MismatchedInputException.
return (Long) ctxt.handleUnexpectedToken(Long.class, p);
}
private UUID _badFormat(String uuidStr, DeserializationContext ctxt)
throws IOException
{
return (UUID) ctxt.handleWeirdStringValue(handledType(), uuidStr,
"UUID has to be represented by standard 36-char representation");
}