如何在泽西设置默认为json而不是xml?

使用jersey jersey.java.net如果URI中没有accept标头或.xml后缀,如何将JSON设置为默认序列化而不是XML?

您可以在@Produces注释中为每种媒体类型指定质量索引。 如果允许XML和JSON,我可以执行以下操作以使Jersey更喜欢JSON:

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

您应该能够设置@Produces注释以指定返回格式,如下所示:

 @Produces( { "application/json" }) 

为什么没有接受标题?

您可以通过在@Produces注释中按优先顺序指定媒体类型来指定生成的首选项。

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

在上面的代码中,因为“application / json”首先出现,如果在请求中没有指定accept头,则Jersey将默认生成JSON响应。

使用qs(由Martin建议)使偏好更加明确,但理解起来有点复杂。