[英]How to get JSON as Response in Spring MVC?
我正在尝试将响应返回为JSON。
搜索后,我发现在RequestMapping中添加标头=“ Accept = application / json”的解决方案。
但仍然无法正常工作。
抛出错误HTTP状态406“此请求标识的资源仅能够生成具有根据请求“接受”标头不可接受的特征的响应。”
这是我的控制器代码:
@RestController
public class EmployeeController {
private EmployeeService employeeService;
@Autowired(required = true)
@Qualifier(value = "employeeService")
public void setEmployeeService(EmployeeService employeeService){
this.employeeService = employeeService;
}
@RequestMapping(value = "/test",method = RequestMethod.GET)
public String test(){
return "{\"name\":\"xyz\"}";
}
@RequestMapping(value = "/employees",method = RequestMethod.GET,headers = "Accept=application/json")
public List<Employee> listEmployees(){
List<Employee> employees = this.employeeService.getEmployees();
return employees;
}
}
我在哪里做错了?
生成JSON和XML响应的简单方法是@ResponseBody批注。
@RequestMapping(value =" /jsonPostSingle", method = RequestMethod.GET)
@ResponseBody
public PostModel generateJSONPostsingle(@ModelAttribute("postModel") PostModel postModel) {
if(postModel.getPostId() == 1) {
postModel.setTitle("post title for id 1");
} else {
postModel.setTitle("default post title");
}
return postModel;
}
这样,您将能够使用@ModelAttribute将请求映射到模型类。
我了解您正在尝试从/ employees的GET请求发送响应。
如果您使用的是Spring 3.1,请尝试使用
@RequestMapping(value = "/employees",method = RequestMethod.GET, produces = "application/json")
而不是添加headers = "Accept=application/json"
更多信息:如果您想指定将随请求发送的数据类型,则可以使用consumes属性
例:
@RequestMapping(value="/foo", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
这将消耗和响应仅JSON类型
检查关于春季更新的此链接http://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements/
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.