Проверьте, являются ли две схемы JSON семантически одинаковыми.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проверьте, являются ли две схемы JSON семантически одинаковыми.

Сообщение Anonymous »

Мы автоматически генерируем схему JSON на основе нашей модели Java при каждой сборке нашего приложения и автоматически публикуем схему при определенных запусках конвейера CI/CD. Нам необходимо, чтобы схема была версионной, а версия схемы отличается от версии приложения.
Версия схемы поддерживается вручную в коде нашего приложения; всякий раз, когда мы меняем нашу модель, нам нужно вручную увеличивать версию схемы, определенную в константе. В конечном итоге каждая версия схемы будет опубликована на веб-сайте как наша-схема-x.y.json.
Чтобы избежать случайного изменения модели Java (и, следовательно, схемы) без обновления версии схемы, мы должны хотели бы сравнить ранее опубликованную схему с вновь созданной схемой и не выполнить сборку, если они семантически отличаются.
Нас интересуют только изменения структурной схемы, такие как добавление или удаление разрешенных свойств, изменения в разрешенных значениях свойств (перечислений),... Допускаются неструктурные изменения, такие как обновленные описания свойств, и в этом случае мы обновим уже опубликованную версию схемы.
Вопрос в том, как для наилучшего выполнения такого сравнения на основе десериализации схем в экземпляры Jackson JsonNode:
  • Сравнение по умолчанию на основе Джексона игнорирует порядок свойств, поэтому нам не нужно беспокойтесь об этом.
  • Сравнение по умолчанию на основе Джексона учитывает порядок массива. Я полагаю, что для массивов перечислений мы должны явно игнорировать порядок массива, а как насчет других полей схемы JSON, которые принимают значения массива?
  • Мы можем удалить поля описания перед сравнением. Существуют ли какие-либо другие поля схемы JSON, которые потенциально могут быть изменены, не затрагивая структуру JSON, описанную схемой?
  • Есть ли другие соображения/конкретные свойства схемы JSON, требующие особого внимания?


Подробнее здесь: https://stackoverflow.com/questions/784 ... y-the-same
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»