Джексон автоматически сопоставляет свойства с именем @foo? - PullRequest
0 голосов
/ 10 августа 2011

При игре с REST мой провайдер генерирует JSON с именами атрибутов, начинающимися со знака at, когда свойство помечено как @XmlAttibute следующим образом:

@XmlAttribute
int foo = 1;

вернется

{"@foo":1}

Как я могу сказать Джексону для десериализации, что если у меня есть на клиенте

int foo;

что для этого нужно использовать json-Attribute @foo. Или в более общих чертах: как сказать Джексону игнорировать @ при десериализации?

Обновление: я знаю об аннотации @JsonProperty ("@ foo"), на которую ссылается StaxMan - я забыл добавить это в свой первоначальный вопрос, так как меня особенно интересовали "глобальные настройки", а не на уровне свойств .

Ответы [ 2 ]

4 голосов
/ 11 августа 2011

Можно просто отключить добавление этих знаков '@', поскольку они кажутся бесполезными. Я знаю, что некоторые библиотеки XML-to-JSON (Jettison) хотят использовать это, чтобы различать атрибуты и элементы XML, но это мало полезно для фактической обработки JSON.

Но Джексону может быть дано ожидаемое имя свойства в JSON с аннотацией @JsonProperty:

@JsonProperty("@foo")
public int foo; // or add in setter

, если это необходимо, чтобы держать их там на указателях.

0 голосов
/ 15 сентября 2017

Я думаю, что вы хотите @XmlElement, а не @XmlAttribute.Значения для последнего всегда имеют @ в начале.

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