如何從彈簧控制器返回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