Gson fromJson переключается на другой тип данных в случае сбоя при отображении поля - PullRequest
0 голосов
/ 11 июля 2019

У нас был Объект, скажем, Автомобиль.

Vehicle {
 /// other attributes
 private String item;
}

Мы хранили Автомобиль как json в динамо-таблицах. и в другом потоке мы делали следующее:

private static final Gson GSON = new GsonBuilder().serializeSpecialFloatingPointValues().create();
GSON.fromJson(p, Vehicle.class)

Проблема в том, что недавно мы внесли изменения в код, изменив транспортное средство следующим образом:

Vehicle {
// other attributes
private Map<EnumType, String> item;   // note variable name is same
}

Итак, теперь для старых значений GSON.fromJSON начал давать сбой. Мы не можем вернуться к старому типу данных, так как эта проблема начнет появляться для более нового объекта json, хранящегося в БД. Каков наилучший способ справиться с этим? Я могу подумать о некоторых грязных подходах ... но хочу спросить, предоставляет ли GSON.fromJSON какой-либо способ обработки такого рода изменений в dataType с тем же именем переменной?

...