一、JSON
定义:是一种轻量级的数据交换格式
JSON是JavaScript Object Notation缩写
作用:
使用ajax进行前后台数据交换
移动端与服务端的数据交换
JSON数据格式
1. 对象格式:{"key1": obj1, "key2": obj2, "key3": obj3...}
2. 数组/集合格式[obj1, obj2, obj3...]
注:JSON的key是字符串,JSON的value是Object
规则:
1. 映射用冒号“:”表示。//名称:值
2. 并列的数据之间用逗号“,”分隔。//名称1:值1,名称2:值2
3. 映射的集合(对象)用大括号“{}”表示。//{名称1:值1,名称2:值2}
4. 并列数据的集合(数组)用方括号“[]”表示。
[
{名称1:值1,名称2:值2}
{名称1:值1,名称2:值2}
]
5. 元素可能具有的类型:string,number,object,array,true,false,null
JSON和XML比较
相比于XML,JSON的优势如下:
1. 没有结束标签,长度更短,读写更快
2. 能够直接被JavaScript解析器解析
3. 可以使用数组
二、Ajax
ajax的最大特点是异步请求、不刷新整个页面,只刷新局部,也叫局部刷新。
同步与异步
同步现象:客户端发送请求到服务器端,当服务器返回响应前,客户端处于等待卡死状态
异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事,不会被卡死
Ajax运行原理
页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任何操作,直到服务器端将数据返回给Ajax引擎后,会触发设置好的事件,从而执行自定义的js逻辑代码完成某种页面功能。
JQuery的Ajax技术
$.get(url,[data],[callback],[type]) //后面三个是可选的,可以没有
$.post(url,[data],[callback],[type])
其中:
url:代表请求的服务器端地址
data:代表请求服务器端的数据(可以是key=value形式,也可以是json格式)
callback:表示服务器端成功响应所有触发的函数
type:表示服务器返回的数据类型(jquery会根据指定的类型自动类型转换)
常用的返回类型:text、json、html等
$.ajax({option1:value1,option2:value2...});
语法:$.ajax({键值对});
常用的option如下:
async:是否异步,默认是true代表异步。(注:get/post方式只能异步,不能配置)
data:发送到服务器的参数,建议使用json格式
dataType:服务器返回的数据类型,常用text和json
success:成功响应执行的函数,对应的类型是function类型
type:请求方式,POST/GET
url:请求服务器端地址
三、JSON数据和Java对象相互转换
常见的JSON解析器:Jsonlib,Gson,fastjson,jackson(SpringMVC内置的解析器)
1. 导入jackson的相关jar包
2. 创建jackson核心对象ObjectMapper
3. 调用ObjectMapper的相关方法进行转换
3.1 JSON转为Java对象
readValue(json字符串数据,Class)
3.2 Java对象转换JSON
writeValueAsString(obj):将对象转为json字符串
复杂java对象转换
1. List:数组[]
2. Map:对象格式一致 {}
四、前台向后台发送请求
1. 超链接<a herf=""></a>
2. form表单
3. location.herf=""
4.ajax