使用javascript遍历内容未知的JSON数据

今天看网上有关JSON的教程的时候,看到都是在知道JSON的内容的前提下,怎么来处理这个JSON的数据,例如有一个JSON数据是这样的:

  {
    "people": [
          {
            "firstName": "Brett",
            "lastName": "McLaughlin",
            "email": "aaaa"
        },
          {
            "firstName": "Jason",
            "lastName": "Hunter",
            "email": "bbbb"
        },
          {
            "firstName": "Elliotte",
            "lastName": "Harold",
            "email": "cccc"
        }  
    ]
}


这样的内容已知的话,大家处理起来会很简单,例如把它赋值给一个变量例如obj,alert(obj.people[0].firstName)就会显示出Brett,但是如果我们不知道这个JSON的内容或者想写个通用的JSON处理程序的话肯定不能这样写。下面说说我想到的处理方法

1、我们把上面的JSON数据转换成字符串,假设这是后台返回的,需要我们来处理的JSON字符串,转换后是这样的:

"{ \"people\": [{\"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" }, { \"firstName\": \"Jason\", \"lastName\":\"Hunter\", \"email\": \"bbbb\"}, { \"firstName\": \"Elliotte\", \"lastName\":\"Harold\", \"email\": \"cccc\" }]}";


2、我们把这个字符串赋值给一个变量,变量名叫person:

var person = "{ \"people\": [{\"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" }, { \"firstName\": \"Jason\", \"lastName\":\"Hunter\", \"email\": \"bbbb\"}, { \"firstName\": \"Elliotte\", \"lastName\":\"Harold\", \"email\": \"cccc\" }]}";

3、我们知道,可以使用eval函数把这个字符串转换成对象:

var obj = eval( "(" + person + ")");


4、既然是一个对象,在javascript中就尅使用for...in..语法来遍历一个对象的属性:

for(var o in obj){
	alert(o);//people
	alert(obj[o].length);//3
}

第一步搞定,我们已经取到了“people”,很好,这正是我们想要的,既然obj[o]的长度为3,那我们在遍历下它,看看它有什么属性:

for(var o in obj){
	var temp = obj[o];
	for(var i = 0 ; i < temp.length; i++){
		for(var t in temp[i]){
			alert(t + ";" + temp[i][t]);
		}
	}
}

我 用的是火狐的浏览器,显示的结果是:firstName;Brett , lastName;McLaughlin .....

可以看到,这是这个JSON不管我们知不知道具体的内容,还是可以遍历出其内容来!



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值