Концептуально 2 ключевых отличия 1. Gson по умолчанию не требует обязательного аннотирования полей. Jackson же по умолчанию нуждается в аннотациях а-ля @JsonProperty("id") но это можно отключить. 2. Gson не умеет работать с лишними полями в принципе, а в Jackson данная возможность реализована @JsonIgnore Map<String, Object> additionalProperties И если в JSON есть поля которые отстустствуют в модели, то они автоматом попадут в additionalProperties. С точки зрения автотестов Jackson более удобный вариант, так как проверку на отсутствие лишних полей мы можем вынести на уровень теста. В Gson же будет брошено исключение на этапе десериализация. Это особенно больно, если используются декларативные http клиенты, такие как retrofit, feign и подобные.
Обсуждают сегодня