我正在尝试从Spring Rest Controller获取格式为JSON的响应Body,我的代码是:
@ResponseBody
@RequestMapping(value = "/userDetails", method = RequestMethod.GET, produces = "application/json")
public UserInfo getUserDetails(Principal principal){
return users.get(principal.getName());
}
我的结果是:
响应{_body:“{id:001}”,状态:200,ok:true,statusText:“OK”,标题:标题,...}。
我怎样才能得到Json感谢的身体......
答案 0 :(得分:3)
使用@RestController
@RestController
public class DemoController {
@GetMapping("/userDetails")
public UserInfo getUserDetails(Principal principal){
return users.get(principal.getName());
}
}
输出:
{"id": 001}
注意:强>
Spring 4.0引入了@RestController
,这是一个控制器的专用版本,它是一个便利注释,除了添加@Controller
和@ResponseBody
注释之外什么也不做。通过使用@RestController
注释对控制器类进行注释,您不再需要将@ResponseBody
添加到所有请求映射方法中。默认情况下,@ResponseBody
注释处于活动状态。点击此处了解更多信息。
@RestController = @Controller + @ResponseBody
答案 1 :(得分:0)
@RestController 公共类DemoController {
@RequestMapping(method = RequestMethod.POST,
value = "userdetails",
consumes = "application/json",
produces = "application/json")
public UserInfo getUserDetails(@RequestBody Principal principal){
return users.get(principal.getName());
}
}
其他方式解决
答案 2 :(得分:-1)
从方法中删除@ResponseBody注释。