Как я могу игнорировать свойство по умолчанию, добавленное Джексоном? - PullRequest
0 голосов
/ 06 августа 2020

Я использую Джексона для создания объекта JSON. Я обнаружил, что Джексон автоматически добавляет свойство по умолчанию. Мне действительно не нужно это поле, как его удалить?

это мой упрощенный код.

@JsonIgnoreProperties(value = {"@id"})
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, scope = CustomMessage.class)
public class SystemMessage {
     private String body;
     }
 }

Eventhoug Я добавил аннотацию JsonIgnoreProperties, она не удаляется. Я думаю, это потому, что "@id" является свойством по умолчанию.

{"@ id": 1, "body": "hello"}

это сообщение, которое я получил от rabbitMQ.

1 Ответ

1 голос
/ 06 августа 2020

@Id добавляется из-за аннотации @JsonIdentityInfo - см. https://fasterxml.github.io/jackson-annotations/javadoc/2.5/com/fasterxml/jackson/annotation/JsonIdentityInfo.html, где вы можете видеть, что это значение по умолчанию для поля property.

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

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