1 json数据格式
文章目录
1.1 什么是json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
1.2 json的语法格式
json对象有三种数据格式,分别如下:
类型 | 语法 | 解释 |
---|---|---|
对象类型 | {name:value,name:value…} | 其中name是字符串类型,而value是任意类型 |
数组/集合类型 | [value,value,value…] | 其中value是任意类型 |
混合类型 | [{},{}… …] 或 {name:[]… …} | 合理包裹嵌套对象类型和数组类型 |
JSON是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
//如下java代码分别用xml、json传输
User user = new User();
user.setName("jack");
user.setAge(24);
user.setGender("男");
//xml格式
<user>
<name>jack</name>
<age>24<age>
<gender>男</gender>
</user>
//json
{"name":"jack","age":24,"gender":"男"}
1.3 JavaScript中json格式和json解析练习
1.3.1 练习1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/**
* 案例一
* var person={key:value,key:value}
*
* class Person{
* String firstname = "张";
* String lastname = "三丰";
* Integer age = 100;
* }
*
* Person p = new Person();
* System.out.println(p.firstname);
*/
//json的定义
var person = {
"firstname": "张",
"lastname": "三丰",
"age": 100
};
//json解析
alert(person.firstname);
alert(person.lastname);
alert(person.age);
</script>
</body>
</html>
1.3.2 练习2
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/**
* 案例二
* [{key:value,key:value},{key:value,key:value}]
* *
*/
var json = [{
"firstname": "张",
"lastname": "三丰",
"age": 100
},
{
"firstname": "张",
"lastname": "翠山",
"age": 58
},
{
"firstname": "张",
"lastname": "无忌",
"age": 23
}
];
for (var i = 0; i < json.length; i++) {
console.log(json[i].lastname);
}
</script>
</body>
</html>
1.3.3 练习3
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/**
* 案例三
* {
* "param":[{key:value,key:value},{key:value,key:value}]
* }
*
*
*/
var json = {
"wife": [{
"name": "小双",
"age": 18,
"addr": "扬州"
},
{
"name": "建宁",
"age": 18,
"addr": "北京"
},
{
"name": "龙儿",
"age": 38,
"addr": "岛国"
},
{
"name": "阿珂",
"age": 17,
"addr": "中国台湾"
}
]
}
//全取
for (var i = 0; i < json.wife.length; i++) {
console.log(json.wife[i].name);
}
</script>
</body>
</html>
1.3.4 练习4
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/**
* 案例四
* {
* "param1":[{key:value,key:value},{key:value,key:value}],
* "param2":[{key:value,key:value},{key:value,key:value}],
* "param3":[{key:value,key:value},{key:value,key:value}]
* }
*
*
*/
var json = {
"wife": [{
"name": "双儿",
"age": 18,
"addr": "扬州"
},
{
"name": "建宁",
"age": 18,
"addr": "北京"
},
{
"name": "龙儿",
"age": 38,
"addr": "岛国"
},
{
"name": "阿珂",
"age": 17,
"addr": "中国台湾"
}
],
"lp": [{
"name": "大双儿",
"age": 18,
"addr": "扬州"
},
{
"name": "小双儿",
"age": 18,
"addr": "扬州"
}
]
}
console.log(json.wife[0].name);
</script>
</body>
</html>
1.3.5 JSON对象及JSON字符串转换
JSON.parse(jsonStr); // json字符串 --> json 对象
JSON.stringify(json); // json对象 --> json字符串