如何从弹簧控制器返回JSON作为视图或ModelAndView
?我对使用@ResponseBody
注释不感兴趣。有没有其他的方式来做到这一点?spring:从控制器返回JSON作为ModelAndVIew
回答
您可以使用org.codehaus.jackson.map.ObjectMapper
类将json字符串写入输出流。使用下面的代码片段在你的控制器的方法:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outputStream, model);
outputStream.flush();
如果您的Spring版本足够高,那么MappingJacksonJsonView对象使用Jackson的ObjectMapper来序列化模型。参考http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/view/json/MappingJacksonJsonView.html – 2012-03-21 18:34:50
是的,你可以返回一个MappingJacksonJsonView
或者其指定为使用mav.setView(new MappingJacksonJsonView())
一个ModelAndView
对象。
更新:在Spring 4 MappingJacksonJsonView是deprecated。你可能想升级到MappingJackson2JsonView
详细说明,您可以将MOdelAndView的视图名称设置为MappingJacksonJsonView的一个实例返回一个JSON对象来代替ModelAndView。一个例子看起来像: 'ModelAndView mav = new ModelAndView(new MappingJacksonJsonView()); mav.addObject(“key1”,“value1”); mav.addObject(“key2”,“value2”);' 返回'mav'然后会输出一个形式如下的JSON对象: '{“key1”:“value1”,“key2”:“value2”} ' – JCoster22 2014-02-20 18:43:15
更新:我使用了[MappingJackson2JsonView](http://docs.spring.io/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/view/json/MappingJackson2JsonView.html)以上。 – JCoster22 2014-02-20 18:50:16
- 1. Spring将ModelAndView返回给DispatcherServlet
- 2. Spring MVC控制器中的ModelAndView和byte []
- 3. 返回JSON返回时的ModelAndView
- 4. 从spring mvc控制器返回json对象列表
- 5. 从spring控制器返回JSON字符串
- 6. 需要从spring mvc控制器返回json数据
- 7. 从Spring控制器返回JSON数据类型/视图
- 8. 从网页API控制器返回JSON
- 9. C#从MVC控制器返回纯Json
- 10. codeigniter从JSON控制器url返回null
- 11. 从laravel控制器返回JSON响应
- 12. 从mvc控制器返回json
- 13. 如何将ModelAndView作为PDF返回?
- 14. 如何在控制器中返回错误消息,而不是在spring中返回modelAndView mvc
- 15. Spring 3.1,JSON响应ModelAndView
- 16. 作为JSON返回控制代码为jQuery ajax json调用
- 17. 从MVC4控制器返回json数据到ajax(不工作)
- 18. 使用消息转换器从Spring控制器返回CSV或JSON
- 19. 在Spring MVC控制器中返回XML
- 20. Spring MVC控制器返回HTML
- 21. Spring MVC控制器不返回值
- 22. Spring MVC控制器返回类型
- 23. Spring MVC控制器返回JSON - 错误406
- 24. 在Spring控制器上返回未捕获异常的JSON
- 25. AJAX JSON发布到Spring控制器返回HTTP 415
- 26. Spring Boot自定义错误控制器返回空JSON响应
- 27. 返回POJO作为JSON在Spring MVC 4
- 28. 返回从MVC控制器
- 29. 返回从控制器回错误以查看在Spring MVC
- 30. 为什么在spring中返回ModelAndView提示下载视图名称的.json?
Spring有'ContentNegotiatingViewResolver',它可以根据后缀或'Accept'头部动态地返回“右”视图。 [链接](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multiple-representations)。您在'ModelAndView'中提供模型和视图,让Spring执行视图解析。 – Hong 2017-02-28 05:17:17