1. JSON
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写,也易于机器解析。JSON采用完全独立于语言的文本格式,而且很多语言都提供了JSON的支持
- JSON是一种轻量级的数据交换格式
- 轻量级指的是跟xml做比较
- 数据交换指的是客户端和服务器间业务数据的传递格式
1.1 JSON在JavaScript中的使用
1.1.1 JSON的定义
- JSON是由键值对组成,并且由大括号包围,每个键由引号引起来,键和值之间使用冒号进行分割,多组键值对间进行逗号进行分割
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var jsonObj = {
"key1": 12,
"key2": "abc",
"key3": true,
"key4": [11, "arr", false],
"key5": {
"key5-1": 551,
"key5-2": "key552value"
},
"key6": [{
"key6-1-1": 6611,
"key6-1-2": "6622"
}, {
"key6-2-1": 6622,
"key6-2-2": "value"
}]
};
</script>
</head>
<body>
</body>
</html>
1.1.2 JSON的访问
- Json本身是一个对象
- json中的key可以理解为对象中的一个属性
- json中的key访问就跟访问对象的属性一样,json.key
alert(jsonObj.key5["key5-2"]);
alert(jsonObj.key6[1]["key6-2-1"]);
1.1.3 JSON的两个常用方法
- JSON的存在由两种形式
- 一种是对象的形式存在,我们叫他JSON对象
- 一种是字符串的形式存在,我们叫他JSON字符串
- 一般我们要操作json中的数据时,需要json对象的格式
- 一般我们要在客户端和服务器间进行数据交换时,使用json字符串
- JSON.stringify() 把json对象转换为json字符串
- JSON.parse() 把json字符串转换为json对象
var jsonObjString = JSON.stringify(jsonObj);
alert(jsonObjString);
var obj = JSON.parse(jsonObjString);
alert(obj);
1.2 JSON在Java中的使用
1.2.1 javaBean和json的互转
public class Person {
private Integer id;
private String name;
public Person() {
}
public Person(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
@Test
public void test1() {
Person person = new Person(1, "zhang");
Gson gson = new Gson();
String perJsonStr = gson.toJson(person);
System.out.println(perJsonStr);
Person person1 = gson.fromJson(perJsonStr, Person.class);
System.out.println(person1);
}
1.2.2 List和json的互转
public class PersonListType extends TypeToken<ArrayList<Person>> {
}
@Test
public void test2() {
List<Person> personList = new ArrayList<>();
personList.add(new Person(1, "li"));
personList.add(new Person(2, "wang"));
Gson gson = new Gson();
String personListJson = gson.toJson(personList);
System.out.println(personList);
List list = gson.fromJson(personListJson, new PersonListType(