Грандируя (DE) сериализация объектов с корневым узлом только с аннотациями в ДжексонеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Грандируя (DE) сериализация объектов с корневым узлом только с аннотациями в Джексоне

Сообщение Anonymous »

Допустим, у меня есть json, как: < /p>

Код: Выделить всё

{
"rootNode": {
"foo": "bar",
"lubie": "placki"
}
}
< /code>
Что я хочу представлять с помощью класса: < /p>
@JsonRootName(value = "rootNode")
Class JsonPojo {
@JsonProperty
String foo;
@JsonProperty
String lubie;
}
Теперь, чтобы использовать функцию, мне нужно специально включить функции в ObjectMapper как SO:

Код: Выделить всё

ObjectMapper mapper = new ObjectMapper().enable(DeserializationFeature.UNWRAP_ROOT_VALUE).enable(DeserializationFeature.UNWRAP_ROOT_VALUE);
< /code>
Я хотел бы, однако, использовать какую -то аннотацию над POJO, чтобы эти функции всегда были включены, когда (DE) сериализует объект. Я использую фреймворк «RestAsed», которая самостоятельно создает создание ObjectMapper 
, а десериализация объекта, представляющего HTTP -ответ, выглядит так:

Код: Выделить всё

JsonPojo responseDeserialized = response.as(JsonPojo.class);
< /code>
- единственный способ создать себя 2 отдельные, пользовательские классы сериализатора и Deserializer, а затем добавить следующие за Pojo: < /p>
@JsonSerialize(using = JsonWithRootElementSerializer.class)
@JsonDeserialize(using = JsonWithRootElementDeserializer.class)
< /code>
нет никакого способа для STH: < /p>
@JsonSerialize(withFeature = SerializationFeature.UNWRAP_ROOT_VALUE)
@JsonDeserialize(withFeature = DeserializationFeature.UNWRAP_ROOT_VALUE)
Если нет, то, как эти (de) сериализаторы должны выглядеть как общие, то есть работать для любого возможного объекта с корневым узлом?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ns-in-jack
Ответить

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

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

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

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

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