JSON及JSON遍历获得键和值的理解

JSON是一种数据交换格式(轻量级),页面服务器提交ajax请求,服务器返回json格式的数据,返回的数据一般是自己在后台拼接的Json字符串,前台需要把json字符串转为javascript对象(JSON对象),才可以对JSON数据进行解析。

json字符串 VS json对象 

var personStr = "{"name":"Tom","sex":"male","age":"22"}";(字符串)

var person = {"name":"Tom","sex":"male","age":"22"};(对象)

区别:一个加了引号一个没有加。json对象直接可以通过 person.name 拿到值Tom。

只是举了一个很简单的例子,事实上,json数据会层层嵌套,需要一层层剥开。

JSON标准格式:https://blog.csdn.net/zy512638348/article/details/78270682?utm_source=blogxgwz1

JSON的遍历:(如何遍历取得键的值?如何遍历取得属性的值?)

也以一个简单的例子为例:

var dataString='{"teachers":[{"name":"黄波","course":"网页高级设计"},
                            {"name":"贺敏","course":"Java程序设计"},
                            {"name":"毛丽娟","course":"JavaScript程序设计"}],
                "students":[{"name":"张三","age":20},
                            {"name":"李四","age":21},
                            {"name":"王五","age":19}]
                }'; 
var dataObj = JSON.parse(dataString);//将json字符串转为json对象

 for in:既可以遍历数组,又可以遍历对象的属性。

for(i in dataObj) 单独输出i是输出键的值,输出data[i]才是键所对应的属性的值。理解了这一点应该就不难了。

	for(i in dataObj){
		alert(i);
		alert(dataObj[i]);
		for(j in dataObj[i]){
			alert(j);
			alert(dataObj[i][j]);
			for(k in dataObj[i][j]){
				alert(k);
				alert(dataObj[i][j][k]);
			}
		}
	}

html完整演示代码

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>

<body>
	<script type="text/javascript">

		var dataString='{"teachers":[{"name":"黄波","course":"网页高级设计"},
                            {"name":"贺敏","course":"Java程序设计"},
                            {"name":"毛丽娟","course":"JavaScript程序设计"}],
                "students":[{"name":"张三","age":20},
                            {"name":"李四","age":21},
                            {"name":"王五","age":19}]
                }'; 
	var dataObj = JSON.parse(dataString);//将json字符串转为json对象
	for(i in dataObj){
		alert(i);//属性名字(teachers,students)
		alert(dataObj[i]);//属性值,在这里是一个对象数组[object Object],[object Object],[object Object]
		for(j in dataObj[i]){
			alert(j);//数字0,1,2
			alert(dataObj[i][j]);//一个对象[object Object](嵌套的json对象)
			for(k in dataObj[i][j]){
				alert(k);//属性名字(name course age)
				alert(dataObj[i][j][k]);//属性值
			}
		}
	}
	

</script>
</body>
</html>

将上述js代码整合到html页面会从弹出框清楚看到解析的过程

      

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值