3.13.2 转换JSON数据
3.13.2 转换JSON数据
Spring MVC提供了处理JSON格式请求/响应的HttpMessageConverter:
MappingJackson2HttpMessageConverter。
使用Jackson
利用Jackson开源类包处理JSON格式的请求或响应信息
使用JSON通信需要的配置
因此,只需要:
- 在
Spring Web容器中为RequestMappingHandlerAdapter装配处理JSON的HttpMessageConverter, - 并在交互过程中通过请求的
Accept指定MIME类型,
服务端的处理方法和客户端就可使用JSON格式的消息进行通信了,开发者几乎不用关心通信层数据格式的问题,可以将精力集中到业务处理上面。
@RequestBody注解的作用:读取body数据 解析 绑定到参数上
org.springframework.web.bind.annotation.RequestBody注解用于读取Request请求的body部分数据,然后使用系统默认配置的HttpMessageConverter进行解析,接着把相应的数据绑定到Controller中方法的参数上。
使用请求头的ContentType指定数据编码格式
当前台页面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。可以分为以下几种情况:
| 数据编码格式 | 可以处理的注解 |
|---|---|
application/x-www-form-urlencoded |
这种情况的数据@RequestParam、@ModelAttribute也可以处理,并且很方便,当然@RequestBody也能处理。 |
application/json、application/xml等格式的数据。 |
必须使用@RequestBody来处理。 |
multipart/form-data |
@RequestBody不能处理这种格式的数据。 |
在实际开发工作中使用@RequestBody注解可以很方便地接收JSON格式的数据,并将其转换成对应的数据类型
根据Spring的官方文档说明,Spring MVC默认使用MappingJackson2HttpMessageConverter转换JSON格式的数据,Spring默认使用Jackson开源框架作为JSON解析框架。Jackson开源框架可以非常轻松地将Java对象转换成JSON对象和xml文档,同样也可以将JSON对象、xml文档转换成Java对象.
Jackson下载
本书成书时Jackson开源框架的最新版本是2.9.2,Jackson的jar包共有3个`:
- jackson-annotations-2.9.2.jar
- jackson-core-2.9.2.jar,
- jackson-databind-2.9.2.jar