1. Ajax概述
Ajax: Asyncronous javascript and xml, 主要特点, 传统同步方式每次请求整个浏览器页面,浪费网络资源, 使用Ajax可以做到异步请求页面的部分数据. 当前浏览器内部都有一个ajax引擎, ajax引擎对象
XMLHttpRequest,
2. 原生的ajax
弊端: 原生的ajax不支持跨浏览器的兼容性; 使用方法如下截图简介
3. jQuery的ajax请求
-
jQuery的ajax请求-GET, post请求只要将下面的get改为post即可,其他不变.
-
ajax的底层函数:
$.get , . p o s t 是 a j a x 的 上 层 函 数 , 调 用 的 是 .post是ajax的上层函数 , 调用的是 .post是ajax的上层函数,调用的是.ajax底层函数, 底层函数方法签名更多更灵活,
ajax底层寒素格式如下:
$.ajax({
url:"/ajaxServlet",
data:“name=lisi”,
success:function(data){
},
error:function(data){
}
dataType:“text”,
type:“POST”
});
4. JSON
4.1 概述
JSON: JavaScript Object Notation (js对象标记), 是一种轻量级的数据交换格式, 轻量级意思是不依赖操作系统, 在浏览器运行;
当前JSON已经是服务器和浏览器客户端交互的主要数据格式了, 也就是说服务器要把数据转换为JSON格式发给浏览器,浏览器发JSON格式数据给服务器 ;
4.2 JSON格式
三种:
对象类型: {name:value,name:value,name:value} name是字符串类型, value是任意类型
数组类型: [value,value,value] 其中value为任意类型
混合类型: [{},{},] 或 {name:[],name:[]} 即数组中有对象,对象中有数组
举例:
(1) 取出json对象的数据
var person={“firstname”:“三”, “lastname”:“张”, “age”:20};
console.log(person.firstname); //获取三
(2)取出json数组的数据
var json=[“刘备”,“张飞”,“关羽”];
console.log(json[0]); //取出刘备
console.log(json[1]); //取出张飞
(3)取出json数组嵌套对象的数据
var json=[
{“firstname”:“三”, “lastname”:“张”, “age”:20},
{“firstname”:“敏”, “lastname”:“赵”, “age”:21}
]
console.log(json[0].lastname) ; //获取张
4.3 java格式转换为json格式
导入jacson jar包, maven中的jar包依赖配置为:
com.fasterxml.jackson.core
jackson-databind
2.9.0
一个对象和一个方法:
ObjectMapper objectMapper=new ObjectMapper();
String json=objectMapper.writeValueAsString(“传入数组/对象/list集合/map集合”);
两个命令就完成了 数组/对象/list集合/map集合 转换成json格式的字符穿了,很方便;
下面是几个举例:
4.4 json格式转换为java格式
一个对象和一个方法
ObjectMapper objectMapper=new ObjectMapper();
objectMapper.readValue(json,Person.class);
objectMapper.readValue(json,String[].class);
objectMapper.readValue(json,new TypeReference<List>(){});
objectMapper.readValue(json,new TypeReference<Map<String,Person>>(){});