Версионный отдых для комплекса JSON - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть 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- Я хочу сделать преобразование из новой версии в более старую версию максимально эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...