Как установить значение по умолчанию для json вместо xml в джерси?

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

Ответ 1

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

@Produces({"application/json;qs=1", "application/xml;qs=.5"})

Ответ 2

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

@Produces( { "application/json" })

Почему нет заголовка accepts?

Ответ 3

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

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

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

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