Помимо поддержки управления версиями (которая, как правильно отмечает Брюс, является одной из функций, которую можно добавить относительно легко), обычно выполняется простое разрешение игнорирования нераспознанных свойств вместо исключения.
Есть несколько способов сделать это (см. " Как игнорировать неизвестные свойства "; самый простой из них - просто глобально изменить поведение следующим образом:
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Структурные изменения сложнее, поэтомуЭто может быть хорошей стратегией, чтобы избежать структурных изменений, отличных от добавления / удаления свойств. Например, вместо изменения свойства с JSON Object на JSON Array (или наоборот) добавьте новое свойство с новым типом, не используйте старый.