【问题标题】:Returning JSON object or String from a JAX-RS method depending on a query parameter根据查询参数从 JAX-RS 方法返回 JSON 对象或字符串
【发布时间】:2012-03-01 10:32:34
【问题描述】:

我有一个 JAX-RS servlet,我想返回一个用于 GET 查询的 JSON 对象到 URL /upgrade/somePath,但一个 String 用于 GET 查询到 /upgrade/somePath?count=true。我的问题是这个方法不能根据查询参数返回两种不同的类型。我尝试将不同的方法映射到特定的 URL @Path("/upgrade/somePath?count=true"),但 Jersey 不乐意提供。

@Path("upgrade")
public class UpgradeMock
{
    @GET
    @Path("somePath")
    @Produces(MediaType.APPLICATION_JSON)
    public UpgradePackageList getPackages(@QueryParam("count") Boolean count)

【问题讨论】:

  • 我认为您甚至应该根据那个神奇的查询参数更改响应的 Content-Type 标头。
  • 第二个资源为什么不用路径/upgrade/somePath/count?
  • 好主意,这将是解决方案。我有需要修改的规范中的这些模式。

标签: java json jax-rs


【解决方案1】:

据我所知,您无法使用 Jersey 实现这一目标。如果这种工作方式是必须的(即规范),您应该更改您的方法以返回 String 并通过手动调用 Jackson 的 JSON 序列化程序将 JSON 序列化交到您手中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多