我目前正在研究一个由其他团队维护的项目,现在我需要对其进行维护。当我浏览项目时,我发现以下内容:

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

最佳答案

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

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

关于java - @Consumes(MediaType.APPLICATION_JSON)批注,但将请求双向作为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24588822/

10-09 02:14