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