JSON数据交互和RESTful支持

JSON数据和RESTful

  • JSON数据交互概述
    • JSON结构
    • JSON数据转换
      • Jackson开源包
    • 案例——JSON数据的使用
  • RESTful支持
    • RESTful应用案例——用户信息查询

JSON数据交互概述

JSON与XML非常相似,都是用于存储数据的。但JSON相对于XML来说,解析速度更快,占用空间更小。

JSON结构

  1. 对象结构

以"{“开始,以”}“结束。中间包含多个数据,name:value形式的,多个数据之间用”,"隔开。**关键字(key)必须为String类型,值(value)可以是其他数据类型。结构如下

	{
		key1:value1,
		key2:value2,
		.....
		"city":"Beijing",
		"street":"Changan",
		"postcode":100000
	}
  1. 数组结构

数组结构,一个key对应多个value,以"[“开始,以”]“结束。各个值之间用”,"隔开。例如:

	{
		"hobby":["篮球","足球",“台球"]
	}

JSON数据转换

Spring 提供了一个HttpMessageConverter< T>接口完成浏览器与控制器类之间的数据交互。
其中HttpMessageConverter接口的实现类MappingJackson2HttpMessageConverter是Spring MVC默认处理JSON格式请求响应的实现类。该类利用Jackson开源包读写JSON数据,将JSON对象和XML文档同Java对象进行相互转换。

Jackson开源包

使用MappingJackson2HttpMessageConverter对JSON数据进行转换,需要使用Jackson的开源包。
下载地址:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/

JSON数据交互和RESTful支持_第1张图片

使用注解开发时,需要用到两个重要的JSON格式转换注解:@RequestBody和@ResponseBody。

注解 说明
@RequestBody 用在方法的形参上,用于将请求中的数据绑定到形参上。
@ResponseBody 用在方法上,用于直接返回return对象

案例——JSON数据的使用

  1. 创建项目chapter14,导入相关JAR包
    JSON数据交互和RESTful支持_第2张图片
  2. 配置web.xml文件
	
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    						http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 
    						id="WebApp_ID" version="4.0">
  <display-name>chapter13display-name>
  <servlet>
	    <servlet-name>springmvcservlet-name>
	    <servlet-class>
	        org.springframework.web.servlet.DispatcherServlet
	    servlet-class>
	    <init-param>
	        <param-name>contextConfigLocationparam-name>
	        <param-value>classpath:spring-config.xmlparam-value>
	    init-param>
	    <load-on-startup>1load-on-startup>
	servlet>
	<servlet-mapping>
	    <servlet-name>springmvcservlet-name>
	    <url-pattern>/url-pattern>
	servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jsp

你可能感兴趣的:(JSON/RESTful,json,restful)