2017-01-23 11 views
0

Я не хочу, чтобы одно из полей модели Java-класса появлялось в выводе, если мой тип accept - .accept(MediaType.APPLICATION_XML), но это же поле должно появиться в .accept(MediaType.APPLICATION_JSON).Выход REST спрятать поля в XML, но не в JSON

Есть ли способ достичь этого?

Я пробовал @XmlAccessorType(XmlAccessType.NONE), а также @XmlTransient, но оба, похоже, скрыть от выхода JSON также.

+0

Вы когда-нибудь рассматривали индивидуальные DTO для каждого типа медиа? –

+0

Вы используете Джерси? –

ответ

1

После того, как аннотации, такие как @XmlTransient, распознаются как поставщиками JSON, так и XML, вам лучше иметь tailored DTOs для каждого поддерживаемого вами типа носителя.

+0

Спасибо за ваш ответ. Да, я использую Джерси. Я не знал о специализированных DTO. Я посмотрю на него и вернусь, если у меня появятся дополнительные вопросы. –

+0

@BolimeraHannah Самый простой способ добиться того, что вы хотите, - создать DTO для каждого типа медиа, который вы поддерживаете. То есть, один DTO для JSON и один DTO для XML. –

+0

Спасибо. Не могли бы вы указать на некоторые примеры того, как создавать DTO? –