【发布时间】:2013-10-10 15:32:13
【问题描述】:
我有一个类似这个的 Spring 3.1 Controller 方法
@RequestMapping(method = RequestMethod.POST)
public void (@RequestBody SomeObject obj) {
// Do something
}
spring 配置文件已正确设置以接受 JSON。如果我发送内容类型设置为“application/json”的请求并以 JSON 格式发送正确的正文,一切都会按预期进行。
如果我没有将 Content Type 指定为“application/json”,则返回 HTTP 415,这也是基于配置的预期。不管内容类型如何,是否告诉 Spring 始终将 RequestBody 视为 JSON?
【问题讨论】:
-
别这么想。来自文档:MappingJackson2HttpMessageConverter(或使用 Jackson 1.x 的 MappingJacksonHttpMessageConverter)一个 HttpMessageConverter 实现,可以使用 Jackson 的 ObjectMapper 读取和写入 JSON。 JSON 映射可以通过使用 Jackson 提供的注释根据需要进行自定义。当需要进一步控制时,可以通过 ObjectMapper 属性注入自定义 ObjectMapper,以应对需要为特定类型提供自定义 JSON 序列化器/反序列化器的情况。默认情况下,此转换器支持 (application/json)。
标签: spring-mvc