我有一个方法可以发布一些json数据,看起来像这样
@RequestMapping(value = "/m1", method = RequestMethod.POST)
public Object m1(@RequestBody Map<String, ?> body) {
// do something
}
当我发帖时将content-type
标题设置为application/json
时,这很有用,但如果我没有,则会失败并显示错误(它无法将帖子正文反序列化到地图中,因为它没有'知道怎么样)
如果没有指定标题,我必须在spring中配置什么才能使application/json
作为默认值?
答案 0 :(得分:1)
将JSON转换为对象的类称为HttpMessageConverter
。我假设您使用Spring附带的默认Jackson。你可以编写一个自定义MessageConverter
,它总是在你的响应对象类型的支持方法中返回true,然后在readInternal和writeInternal方法中调用Jackson httpconverter。但是,如果您这样做,请小心,因为一旦在您的请求处理程序中注册,就会询问所有@ResponseBody
和@RequestBody
请求。