json服务的2种模式
@RequestMapping(value="/{courseId}",method=RequestMethod.GET)
public @ResponseBody Course getCourseInJson(@PathVariable Integer courseId)
@RequestMapping(value="/jsontype/{courseId}",method=RequestMethod.POST)
public ResponseEntity<Course> getCourseInJson(@PathVariable Integer courseId)
SpringMVC中启动对JSON的支持:
步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,由于这里主要讲解JSON数据格式,这里使用MappingJackson2JsonView工具类库,将模型数据转化称JSON格式。如下图配置,其中JsonView类的作用是将模型数据转化成JSON格式。
步骤2:Maven的pom文件引入依赖,使用jackson提供工程的javaBean的JSON的转换。
案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。
数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解(该注解是SpringMVC抽象的实体,它用泛型包裹了实体类),只需要返回这个类的实例。如下图(了解)
55555555555555
3333333333333
222222222222
3333333333333333333333
在 Controller 中定义返回数据是 JSON 的方式有:
1、在【返回值类型】或【方法】上定义注解:@ResponseBody
2、返回值用 ResponseEntity 包装
在 Spring MVC 中启用对 JSON 的支持,需要定义 bean:ContentNegotiatingViewResolver
常用参数:
参数:order:序号
参数:mediaTypes:Map 数据结构
json->application/json
xml->application/xml
htm->text/html
参数:defaultViews:List 数据
// JSON View 如:
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
参数:ignoreAcceptHeader:true/false
【注意】
1、可以配置多个 *ViewResolver,使用 order 排序,同时非 json 开发中配置的 InternalResourceViewResolver 要放在最后
2、MappingJackson2JsonView 依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version></version>
</dependency>
这个包还依赖:jackson-annotations、jackson-core 包
引入jackson
SpringMVC中启动对JSON的支持:
步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,由于这里主要讲解JSON数据格式,这里使用MappingJackson2JsonView工具类库,将模型数据转化称JSON格式。如下图配置,其中JsonView类的作用是将模型数据转化成JSON格式。
步骤2:Maven的pom文件引入依赖,使用jackson提供工程的javaBean的JSON的转换。
案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。
数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解(该注解是SpringMVC抽象的实体,它用泛型包裹了实体类),只需要返回这个类的实例。如下图(了解)
SpringMVC中启动对JSON的支持:
步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,其中JsonView类的作用是将模型数据转化成JSON格式。
步骤2:Maven的pom文件引入依赖,提供工程JSON的转换。
案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。
数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解,并添加泛型,只需要返回这个类的实例。如下图(了解)
配置ContentNegotiateViewResolver
依赖
Spring MVC返回JSON数据方法
1、使用@ResponseBody注解
2、使用ResponseEntity<T> 作为返回值
使用json格式返回查询结果
1、使用@ResponseBody注解
2、使用ResponseEntity<T> 作为返回值
xml中配置JSON View
@ResponseBody
json by body
如果使用spring 4 的小伙伴,可以会报mediaTypes没有set方法等错误,正确的配置是: <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" ><br> <property name="order" value="1" ></property><br> <property name="contentNegotiationManager"><br> <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"><br> <property name="mediaTypes"><br> <map><br> <entry key="json" value="application/json" ></entry><br> <entry key="xml" value="application/xml" ></entry><br> <entry key="htm" value="text/html" ></entry><br> </map><br> </property><br> <property name="ignoreAcceptHeader" value="true"></property><br> </bean><br> </property><br> <property name="defaultViews"><br> <list><br> <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" ></bean><br> </list><br> </property><br> </bean><br> 这样就不会报错了。