我目前正在开发一个由其他团队维护的项目,现在我需要维护它。当我正在完成这个项目时,我发现了以下内容:
在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
答案 0 :(得分:3)
@Consumes
符合以下目的。它限制了处理程序的映射。例如,路径/resource
可能有两个处理程序,一个映射为使用XML而另一个映射为使用json。调度员将根据请求的内容类型选择正确的。
参数类型可以是任何东西,只要指定的媒体类型有适当的转换器到参数类型本身。在这种情况下,很可能是从任何媒体类型到String
的转换器。