Json、Ajax

一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值