一、Ajax
1.概念:
ASynchronous JavaScript And XML 異步的JavaScript 和 XML
2.同步和異步
1.同步
用戶端請求服務端,必須等待服務端響應過來資料,用戶端才能做其他操作
2.異步加載(Ajax)
用戶端請求服務端,不需要等到服務端響應到資料時,就可以做其他操作
3.實作方式
1. $.ajxa()實作-------------------->可以設定同步或者異步加載
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
//定義方法
function fun() {
//使用$.ajax()發送異步請求
$.ajax({
url:"ajaxServlet" , // 請求路徑
type:"POST" , //請求方式
//data: "username=jack&age=23",//請求參數
data:{"username":"jack","age":23},//一般是json格式
success:function (data) {
alert(data);
},//響應成功後的回調函數
error:function () {
alert("出錯啦...")
},//表示如果請求響應出現錯誤,會執行的回調函數
dataType:"json"//設定接受到的響應資料的格式
});
}
</script>
</head>
<body>
<input type="button" value="發送異步請求" onclick="fun();"/>
</body>
</html>
2. $.get()----------------------------------->隻能進行異步加載,不能同步加載
$.get("url",{"請求的參數名":"參數值","請求的參數名":"請求的參數值",...},function(data) {
},"json");
3.$.post()----------------------------------->隻能進行異步加載,不能同步加載
$.post("url",{"請求的參數名":"參數值","請求的參數名":"請求的參數值",...},function(data) {
},"json");
二、json
可以了解為:json就是一個js對象
1. 基本規則
* 資料在名稱/值對中:json資料是由鍵值對構成的
* 鍵用引号(單雙都行)引起來,也可以不使用引号
* 值的取值類型:
1. 數字(整數或浮點數)-------->注意:不需要引号
2. 字元串(在雙引号中)
3. 邏輯值(true 或 false)------->注意:不需要引号
4. 數組(在方括号中) {"persons":[{},{}]}
5. 對象(在花括号中) {"address":{"province":"陝西"....}}
6. null
* 資料由逗号分隔:多個鍵值對由逗号分隔
* 花括号儲存對象:使用{}定義json 格式
* 方括号儲存數組:[]
2.擷取資料
1. json對象.鍵名
2. json對象["鍵名"]
3. 數組對象[索引]
4.周遊擷取
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//1.定義基本格式
var person = {"name": "張三", age: 23, 'gender': true};
var ps = [{"name": "張三", "age": 23, "gender": true},
{"name": "李四", "age": 24, "gender": true},
{"name": "王五", "age": 25, "gender": false}];
//擷取person對象中所有的鍵和值
for (var key in person) {
alert(key + ":" + person[key]);
}
//擷取ps中的所有的鍵和值
for (var i = 0; i < ps.length; i++) {
for (var key in ps[i]) {
alert(key + ":" + ps[i][key]);
}
}
</script>
</head>
<body>
</body>
</html>
3.json解析器
jackson-Java對象轉換JSON-----------------------------------------------------------------------------------------------------
1. 轉換方法ObjectMapper類的方法:
* writeValue(參數1,obj):
參數1:
File:将obj對象轉換為JSON字元串,并儲存到指定的檔案中
Writer:将obj對象轉換為JSON字元串,并将json資料填充到字元輸出流中
OutputStream:将obj對象轉換為JSON字元串,并将json資料填充到位元組輸出流中
* writeValueAsString(obj):将對象轉為json字元串
2. 注解:
1. @JsonIgnore:排除屬性。
2. @JsonFormat:屬性值得格式化
* @JsonFormat(pattern = "yyyy-MM-dd")
jackson-Java對象轉換JSON-----------------------------------------------------------------------------------------------------
jackson-JSON轉為Java對象-----------------------------------------------------------------------------------------------------
1. 導入jackson的相關jar包
2. 建立Jackson核心對象 ObjectMapper
3. 調用ObjectMapper的相關方法進行轉換
1. readValue(json字元串資料,Class)
jackson-JSON轉為Java對象----------------------------------------------------------------------------------------------------
1.常見的解析器:
Jsonlib,Gson(谷歌),fastjson(阿裡),jackson(springmvc)
我們使用jackson
jackson使用步驟:
1.導入jackson的相關jar包(注意:導入以下三個)
2. 建立Jackson核心對象 ObjectMapper
3. 調用ObjectMapper的相關方法進行轉換
writeValueAsString(obj):将對象轉為json字元串------>obj可以是java對象,list,map...