如何在球衣中设置默认为 json 而不是 xml?

发布于 2024-12-08 09:38:44 字数 82 浏览 1 评论 0原文

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

Using jersey jersey.java.net How do I set JSON as the default serialization instead of XML when there is no accept header or .xml suffix is in the URI?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独木成林 2024-12-15 09:38:44

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

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

You can assign the quality index to each media type in @Produces annotation. I.e.you can do the following to make Jersey prefer JSON if both XML and JSON are allowed:

@Produces({"application/json;qs=1", "application/xml;qs=.5"})
走走停停 2024-12-15 09:38:44

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

@Produces( { "application/json" })

为什么没有 Accept 标头?

You should be able to set the @Produces annotation to specify the return format like so:

@Produces( { "application/json" })

How come there is no accepts header?

伊面 2024-12-15 09:38:44

您可以通过在 @Produces 注释中按照您的偏好顺序指定媒体类型来指定生成偏好。

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

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

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

You can specify preference of generation by specifying media types in your order of preference in the @Produces annotation.

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

In the above code since "application/json" comes first, if no accept header is specified in the request Jersey will default to generating JSON response.

Using qs (as suggested by Martin) makes the preference more explicit, but its a bit more complicated to understand.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文