Джексон @JsonAppend со значением по умолчанию

ребята! Я разрабатываю веб-приложение, и я решил использовать Джексон в качестве своей платформы обработки JSON.

В запросах, которые я готов отправить; скажем, POJO выглядит так:

data class JSONEnvelope( @JsonProperty("obj1") val obj1: Obj1, @JsonProperty("obj2") val obj2: Obj2) 

которые сериализуются следующим образом:

 { "obj1":{...}, "obj2":{...} } 

но мне нужно добавить некоторые метаданные к этому объекту, скажем, поля meta1 и meta . Я думал, что @JsonAppend решит мою проблему, но я использую Джексона вместе с Джерси, поэтому я не сериализую объекты вручную, поэтому я не могу использовать writer.withAttribute("...", ...) .

Я знаю этот поток , но нет ответа, который бы удовлетворял мои потребности, потому что я думаю, что написание пользовательского сериализатора для этого немного перегружено, более того, если у меня нет механизма для «сериализации остальной части оригинала объект». Я был бы рад за любые идеи

Решение в ответе , которое вы указали , которое добавляет mixIn в ObjectMapper, затем использует ObjectWriter для его настройки, является хорошим решением.

Для Джерси, который вызывает ObjectMapper.writerFor и поэтому запрещает вам звонить с помощью атрибутаAttribute, чтобы настроить ObjectWriter, одна из альтернатив заключается в том, чтобы добавить атрибут в ObjectWriter, прежде чем возвращать его из writerFor. Я предлагаю подклассифицировать ObjectMapper и переопределять различные методы writerFor, добавляя в этот момент необходимый атрибут. Затем вы можете получить Джерси, чтобы использовать этот ObjectMapper, зарегистрировав его как поставщика JAX-RS: см. Различные аннотации в javax.ws.rs чтобы начать с этого. Этот ответ дает пример того, что делать.