一、JSON
1.什么是json
json全称为Javascript Object Notation,是一种轻量级的数据交互格式。分为两种形态,一种为json字符串形态,用于网络传输。另一种为json对象,用于JavaScript中进行操作。
2.在JavaScript中操作json
①创建json对象
var json = {
//输入数据:格式为,"key":value
"key1":"String",
"key2":123,
"key3":{
"key3_1":"String3_1",
"key3_2":32,
"key3_3":["String3_1",32]
},
"key4":["String",123,{
"key3_1":"String3_1",
"key3_2":32,
"key3_3":["String3_1",32]
}]
}
key为键使用双引号引起,value可以为任意数据类型,可以在json对象中嵌套json对象。
②json对象的访问
//使用对象.键名的方法即可访问json中的数据
alert(json.key1);
alert(json.key2);
alert(json.key3);
alert(json.key4);
③json对象转换为json字符方法
//使用JSON.stringify方法来将json转换为字符串
var jsonString = JSON.stringify(json);
alert(jsonString);
转化为json字符串之后,输出jsonString将显示其中的所有数据,类似于java中的toString方法
④将json字符串对象转换为json对象
//使用JSON.parse方法将json字符串解析为json对象
var json1 = JSON.parse(jsonString);
alert(json1);
输出结果如下:
3.在Java中操作json
在Java中操作json主要是操作三种类型转换,分别是JavaBean、List<>、Map<>,这里使用谷歌提供的Gson包来操作,所以在解析之前要导入Gson包;
①对JavaBean操作
一,将JavaBean转换为json对象
//创建JavaBean对象实例
Person person = new Person(1, "lazy");
//创建Gson对象实例
Gson gson = new Gson();
//使用gson.toJson方法转换为json字符串
String personJsonString = gson.toJson(person);
System.out.println(personJsonString);
转换输出后的结果如下:
二,将json字符串转换为JavaBean对象实例
//使用gson.fromJson方法转换为JavaBean对象实例
Person person1 = gson.fromJson(personJsonString, Person.class);
System.out.println(person1);
输出结果如下:
②对List<>操作
一,将List<>转换为json对象
//创建List实例
ArrayList<Person> personArrayList = new ArrayList<>();
personArrayList.add(new Person(1,"Lazy"));
personArrayList.add(new Person(2,"Bob"));
personArrayList.add(new Person(3,"Jack"));
//创建gson对象实例
Gson gson = new Gson();
//使用gson.toJson方法转换为json字符串
String personListJsonString = gson.toJson(personArrayList);
System.out.println(personListJsonString);
结果如下:
二,将json对象转换为List<>(要注意的是不能像转换JavaBean一样直接在gson.fromJson()方法中加入List<>的类型类,否则会出现类型转换异常问题,而是使用gson包中的一个类,在其泛型中加入你要转换的List<>):
//使用gson.fromJson方法将json字符串转换为List
List<Person> personList = gson.fromJson(personListJsonString, new TypeToken<List<Person>>() {
}.getType());
System.out.println(personList);
③对Map<>操作
对Map<>操作与对List<>操作类似
二、Ajax
1.什么是Ajax
Ajax全称为Asynchronous Javascript And XML,异步JavaScript和XML。是一种通过js实现的异步请求,局部更新页面的技术。
2.JavaScript中的原生Ajax操作
function ajaxRequest() {
// 1、我们首先要创建XMLHttpRequest
var xmlHttpRequest = new XMLHttpRequest();
// 2、调用open方法设置请求参数
xmlHttpRequest.open("GET","http://localhost:8080/09_json_ajax_i18n/jsAjax",true);
// 4、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
xmlHttpRequest.onreadystatechange = function () {
if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
//获取请求到的Json字符串并转换为json对象
var jsonObj = JSON.parse(xmlHttpRequest.responseText);
document.getElementById("div01").innerHTML = "编号:" + jsonObj.id + ",姓名:" + jsonObj.name;
}
}
// 3、调用send方法发送请求
xmlHttpRequest.send();
}
3.jQuery中的Ajax请求
①$.ajax方法
$.ajax方法,参数为:
“type”,该参数为请求的类型;
“url”, 该参数为请求的地址;
“data”, 该参数为请求的参数;
“success”, 该参数为处理响应的回调函数;
“dataType”,该参数为请求返回的数据类型,包含:text、json对象、xml数据;
$.ajax({
url:"url",
type:"GET",
data:"action=dojQueryAjax",
dataType:"json",
success:function (data) {
$("#show").html("编号为:" + data.id + ",姓名为:" + data.name);
}
})
②$.get方法
$.get方法,参数为:
“url”,为要请求的地址;
“data”,为要发送的请求参数;
“callback”,请求成功时的回调函数;
“dataType”,请求返回的数据类型,同$.ajax方法;
$.get("url", function (data) {
$("#show").html("get 编号为:" + data.id + ",姓名为:" + data.name);
}, "json");//格式不同于$.ajax
③$.post方法(同上)
④$.getJson方法
$.getJson方法,参数为:
“url”,为要请求的地址;
“data”,为要发送的请求参数;
“callback”,为得到响应时的回调函数;
$.getJSON("url","action=dojQueryAjaxGetJson",function (data) {
$("#show").html("get 编号为:" + data.id + ",姓名为:" + data.name);
})
④serialize()方法
该方法用于将表单序列化为 key=value&key=value 的形式;
alert($("#form01").serialize());