JSON值的获取以及遍历 [JSON]

JSON值的获取以及遍历

获取JSON数据

  1. JSON对象.键名
  2. JSON对象[“键名”]
    • 注意: 使用这种方式的时候键名要使用""(双引号)包括, 是字符串形式的
  3. 数组对象[索引]
    • 如果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中

    • 遍历之后获取到的key的值为字符串类型的, 所以我们要通过这个键获取对应的值时只能通过person[key]的方式, 而不能使用person.key的方式
      • 因为此时key是字符串类型的, 假如此时key为"name", 那么显然如果我们是person."name"就是错误的, 而如果是person[“name”]表示的就是获取名为person的JSON对象对应键名为"name"的值
如果是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数据中键的值存储到临时变量中

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值