@Consumes(MediaType.APPLICATION_JSON)注释,但以字符串形式获取请求

时间:2014-07-05 17:18:37

标签: java jersey jax-rs

我目前正在开发一个由其他团队维护的项目,现在我需要维护它。当我正在完成这个项目时,我发现了以下内容:

jax-rs控制器中,它由@Consumes(MediaType.APPLICATION_JSON)注释,但该方法将请求正文作为 String 而不是JSON 。比什么是注释的用途?这对内容协商有帮助吗?

@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createCake(final String requestBody){.......}

如何将JSON正文转换为字符串?

我的技术堆栈无论如何都有助于回答:

JAX-RS 春天3.2 泽西岛2.4

1 个答案:

答案 0 :(得分:3)

@Consumes符合以下目的。它限制了处理程序的映射。例如,路径/resource可能有两个处理程序,一个映射为使用XML而另一个映射为使用json。调度员将根据请求的内容类型选择正确的。

参数类型可以是任何东西,只要指定的媒体类型有适当的转换器到参数类型本身。在这种情况下,很可能是从任何媒体类型到String的转换器。