Springmvc返回json
前言
我们知道 springmvc作为一个controller层的框架;为了方便jsp的使用,让我们返回一个ModelAndView,而我们实际上为了在更多地方去使用(web,android,ios),我们实际上更多的是返回一个json串,这样我们在各种平台上都能使用这些数据了;然后稍微去研究了一下找到spring提供了两种可以使用的适配器:
- MappingJackson2HttpMessageConverter
- GsonHttpMessageConverter
MappingJackson2HttpMessageConverter(使用jackson)配置如下
- 首先是在pom文件引入jackson-core,jackson-databind,jackson-annotations ,具体版本需要根据自己引入的spring的版本来;
- 接着是在springmvc的配置文件.xml中加中加入以下代码:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:ignoreDefaultModelOnRedirect="true"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </list> </property> </bean>
- 接着在controller层我们只需要返回实体对象,就会得到自动转换成json
以下是请求之后的返回json串
GsonHttpMessageConverter(推荐)
使用这个适配器的话就是使用需要引入gson ,我直接用的最新的2.8.5 ,spring版本是4.3.18.RELEASE,这个没有遇到像第一种那样版本对不上的情况,对我来说就是gson 的使用频率高一些,所以就推荐使用这个吧;;
- 首先还是引入gson
- 接下来在dispatcher-servlet.xml(对应springmvc的配置文件)文件中添加
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:ignoreDefaultModelOnRedirect="true"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.GsonHttpMessageConverter"></bean> </list> </property> </bean>
- 然后是controller层(与上边一样的):
出去以上两种方法还有阿里的fastJson,这个虽然spring没有在框架中写适配器支持 ,但fastjson中有自定义适配器来是配置spring 框架: