3.13.2 转换JSON数据

3.13.2 转换JSON数据

Spring MVC提供了处理JSON格式请求/响应HttpMessageConverter:

  • MappingJackson2HttpMessageConverter

使用Jackson

利用Jackson开源类包处理JSON格式的请求或响应信息

使用JSON通信需要的配置

因此,只需要:

  • Spring Web容器中为RequestMappingHandlerAdapter装配处理JSONHttpMessageConverter,
  • 并在交互过程中通过请求的Accept指定MIME类型,

服务端的处理方法和客户端就可使用JSON格式的消息进行通信了,开发者几乎不用关心通信层数据格式的问题,可以将精力集中到业务处理上面。

@RequestBody注解的作用:读取body数据 解析 绑定到参数上

org.springframework.web.bind.annotation.RequestBody注解用于读取Request请求的body部分数据,然后使用系统默认配置的HttpMessageConverter进行解析,接着把相应的数据绑定到Controller中方法的参数上。

使用请求头的ContentType指定数据编码格式

当前台页面使用GETPOST方式提交数据时,数据编码格式由请求头的ContentType指定。可以分为以下几种情况:

数据编码格式 可以处理的注解
application/x-www-form-urlencoded 这种情况的数据@RequestParam@ModelAttribute也可以处理,并且很方便,当然@RequestBody也能处理。
application/jsonapplication/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,Jacksonjar包共有3个`:

  • jackson-annotations-2.9.2.jar
  • jackson-core-2.9.2.jar,
  • jackson-databind-2.9.2.jar

下载地址