JSON值的获取以及遍历
获取JSON数据
- JSON对象.键名
- JSON对象[“键名”]
- 注意: 使用这种方式的时候键名要使用""(双引号)包括, 是字符串形式的
- 数组对象[索引]
- 如果JSON对象是在数组中, 那么就要使用这种方式
举例理解:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON值的获取</title>
<script>
//1. 定义基本格式
var person = {"name":"张三","age":23,"gender":true};
var name = person.name;
alert(name);
var name = person["name"];
alert(name);
//2. 嵌套格式: {} -> [] , 这里表示的是JSON对象中嵌套[]数组
var persons = {
"persons" : [
{"name":"张三","age":23,"gender":true},
{"name":"李四","age":23,"gender":true}
]
}
//这种方式是先使用键来获取到值, 但是获取到值之后值又是一个数组, 数组中又是对象, 所以我们获取到数组
//中的某个值之后依旧可以使用对应的键获取值
var name1 = persons.persons[1].name;
alert(name1);
//3. 嵌套格式: [] -> {} , 这里表示的是数组中嵌套JSON对象
var ps = [
{"name":"李四","age":23,"gender":true},
{"name":"李四","age":23,"gender":true},
{"name":"李四","age":23,"gender":true},
{"name":"李四","age":23,"gender":true}
]
//这种方式我们是直接通过数组的索引定位到某个对象, 然后通过键获取到对应的值
var name2 = ps[1].name;
alert(name2);
</script>
</head>
<body>
</body>
</html>
JSON数据的遍历:
使用for in循环:
举例理解:
var person = {"name":"张三","age":23,"gender":true};
for (let key in person) {
alert(key);
}
-
注意: 这里就是将person对象中的键都全部遍历了一遍, 每一次遍历都会将对象的键暂存到临时变量key中
如果是JSON对象在数组中, 那么我们遍历时再加一层外层for循环即可:(如下:)
//3. 嵌套格式: [] -> {} , 这里表示的是数组中嵌套JSON对象
var ps = [
{"name":"张三","age":23,"gender":true},
{"name":"李四","age":23,"gender":true},
{"name":"王五","age":23,"gender":true},
{"name":"李四","age":23,"gender":true}
]
for (var i = 0; i < ps.length; i++) {
var p = ps[i];
for (let key in p) {
alert(key + ":" + p[key])
}
}
- 这种方式其实和前面的一种方式是一样的, 其实遍历JSON对象的时候都是使用的for let in循环, 只是这个遍历过程中由于是数组中元素是一个一个的JSON对象, 所以我们要先使用一个普通for循环来遍历数组
补充:
for let in循环遍历JSON数据的时候就像我们Java中的加强for循环(foreach)一样, 都是每次将遍历到的数据先存储到一个临时变量中, 只不过不同的是for let in循环遍历JSON数组的时候每次都是遍历到了键, 所以就是每次都将遍历到的JSON数据中键的值存储到临时变量中