老规矩–妹妹镇楼:
一. AJAX
(一) 概述
Asynchronous JavaScript And XML,异步的JavaScript和XML。所谓的异步指的是客户端不需要等待服务器端的响应,在服务器daun处理请求的过程中,客户端可以进行其他的操作。
(二) 优势
Ajax是一种在无需重新加载整个网页的情况下,更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。
(三) 实现方式
1. JQuery实现
(1)$.ajax()
通过$.ajax()方法发送异步请求,在ajax方法的参数中传入一些参数,如请求路径,请求方式,请求参数,响应成功后的回调函数…
$.ajax({
url:”ajaxServlet”, //请求路径
type:”POST”, //请求方式
data:{“username”:”jack”, “age”:23},//请求参数
success:function(data){
alert(data);
} //响应成功后的回调函数
error:function(){
alert(“error”);
} //请求响应出现错误的回调函数
datatype:”text” //响应的数据类型
})
(2)$.get()
用于发送get请求
如:
$.get(
“ajaxServlet”,
{username:”rose”},
function(data){
alert(data);
}.
“text”
);
(3)$.post
发送POST请求,参数与$.get方法一样的。
二. JSON
(一) 概述
JavaScript Object Notation,JavaScript对象表示法。JSON将数据打包成对象进行传输,多用于存储和交换文本信息,进行数据的传输。语法类似于XML,但是比XML更小,更快,更易解析。
(二) 语法
1. 基本语法
(1) 数据在名称/值对中:json数据是由键值对构成的。
键用引号(单双)引起来,也可以不用引号;
值可以嵌套json对象以及json对象数组
(2) 数据由逗号分隔,多个键值对由逗号分隔。
(3) 使用花括号将json对象括起来。
(4) 方括号保存json对象数组
2. 获取json对象数据
(1) json对象.键名
这个键名不用带引号。
persons.name
(2) json对象[“键名”]
person[“name”]
(三) json数据和java对象的相互转换
1. Java对象转换为json数据
(1) 导入json的解析器,如Jsonlib, Gson, fastjson, Jackson.这里我们导入jackson的Jar包
(2) 创建Jackson的核心对象,ObjectMapper
ObjectMapper mapper = new ObjectMapper();
(3) 调用ObjectMapper的相关方法进行转换
第一个转换方法:
writeValue(参数1, obj)
参数1:
File, 将obj对象转换为json字符串,并保存到指定的File文件中。
Writer,将obj对象转换为json字符串,并将json数据填充到字符输出流中。
OutputStream,将obj对象转换为json字符串,并将json数据填充到字节输出流中。
mapper.writeValue(new File(“./a,txt”), p);
mapper.writeValue(new FileWriter(“./b.txt”), p);
第二个转换方法:
writeValueAsString(obj)
将obj对象转换为json字符串
String json = mapper.writeValueAsString(p)
(4) 注解的使用
@JsonIgnore 用于忽略某些键值对,将该注解放置于Java对象的属性定义之上,那么转换成json数据时,就会自动忽略该属性:
@JsonIgnore
private String name;
@JsonFormat, 用于调整属性的格式:
@JsonFormat(pattern=“yyyy-MM-dd”)
private Date birthday;
(5) list和map转换为json
list转换为json数据的格式为json对象数组。
map转换为json数据的格式为json对象。
2. json数据转换为Java对象
(1) 导入jackson解析器的jar包
(2) 创建jackson的核心对象 ObjectMapper
(3) 调用ObjectMapper的如下方法:
readValue(json字符串数据,Java对象的Class)
String json = “{\”gender\”:\”男\”, \”name\’:\”张三\”}”;
ObjectMapper mapper = readValue(json, Person.class);