У меня есть REST API, который возвращает сложный вывод JSON с несколькими комбинациями List и Map.Для примера скажем, что мой Output выглядит как-то
{
"var1" : 1,
"var2" : [
"var2_1" : {
"var2_1_1" : 10;
"var2_1_2" : [
var2_1_2_1 : 199,
]
}
]
}
Здесь var2, var2_1 и var2_1_2 - классы.Теперь предположим, что мой текущий тип данных var2_1_2_1 - Integer, и для моей следующей версии я хочу изменить его на String.Если я собираюсь использовать свой текущий подход, например создание отдельного класса для каждой переменной типа коллекции, мне нужно будет создать новый класс для var2, var2_1 и var_2_1, который будет поддерживать мой ответ новой версии.
При таком подходебудет слишком много классов для обслуживания (разные классы для каждой версии).Я хочу сохранить классы только для последней версии, и я напишу конвертеры, которые примут входные данные и обеспечат обратную совместимость полезной нагрузки (в этом случае он будет анализировать var2_1_2_1 из String в Integer).
Один подходЯ могу думать об этом, чтобы получить ответ как String и проанализировать ответ с JSONObject, выполнить преобразование и вернуть ответ String пользователю.
Есть ли какой-либо другой / лучший способ выполнить этот случай?Моя проблема здесь: 1- Я не хочу создавать много новых классов.2- Я хочу сделать преобразование из новой версии в более старую версию максимально эффективным.