Пользовательский десериализатор, зарегистрированный для java.lang.String
, обязательно должен работать и позволять вам предотвращать конвертацию. Десериализаторы будут напрямую просматривать контент через JsonParser
, чтобы они могли определять базовый тип токена.
Это вам поможет:
public class ForceStringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
if (jsonParser.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) {
throw deserializationContext.wrongTokenException(jsonParser, JsonToken.VALUE_STRING, "Attempted to parse int to string but this is forbidden");
}
return jsonParser.getValueAsString();
}
}
Вы можете найти больше информации здесь .