Вы можете написать собственный десериализатор для своего класса, где вы устанавливаете значение по умолчанию на случай, если что-то пойдет не так. Что-то вроде:
public class MyJsonDateDeserializer extends JsonDeserializer<Date>
{
@Override
public Date deserialize(JsonParser jsonParser,
DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
String date = jsonParser.getText();
try {
return format.parse(date);
} catch (ParseException e) {
return new Date();
}
}
}
Тогда в вашем классе вы можете сделать что-то вроде:
class MyClass {
//...Fields
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
@JsonDeserialize(using = MyJsonDateDeserializer.class)
private Date date;
//...Fields
}
Вы также можете добавить @JsonIgnoreProperties(ignoreUnknown = true)
к вашему классу, если знаете, что его значение не всегда необходимо.