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


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

3 10

3 ответа:

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

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

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

@Produces( { "application/json" })

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

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

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

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

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