Как установить значение по умолчанию в json вместо xml в Джерси?
Использование Джерси jersey.java.net Как установить JSON в качестве сериализации по умолчанию вместо XML, когда нет заголовка accept или .расширение имени файла в Ури?
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 (как предложил Мартин) делает предпочтение более явным, но его немного сложнее понять.