Как установить по умолчанию в JSON вместо XML в Джерси? - PullRequest
10 голосов
/ 04 октября 2011

Использование jersey jersey.java.net Как установить JSON в качестве сериализации по умолчанию вместо XML, если в URI отсутствует заголовок accept или в файле указан суффикс .xml?

Ответы [ 3 ]

15 голосов
/ 05 октября 2011

Вы можете назначить индекс качества для каждого типа носителя в аннотации @Produces. Т.е. вы можете сделать следующее, чтобы Джерси предпочел JSON, если разрешены и XML, и JSON:

@Produces({"application/json;qs=1", "application/xml;qs=.5"})
1 голос
/ 04 октября 2011

Вы должны иметь возможность установить аннотацию @Produces, чтобы указать формат возврата следующим образом:

@Produces( { "application/json" })

Почему заголовок не принимается?

0 голосов
/ 10 февраля 2014

Вы можете указать предпочтения генерации, указав типы носителей в порядке предпочтения в аннотации @Produces.

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})

В приведенном выше коде, поскольку "application / json" стоит первым, если в запросе не указан заголовок accept, Джерси по умолчанию будет генерировать ответ JSON.

Использование qs (как предложено Мартином) делает предпочтение более явным, но его немного сложнее понять.

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