使用for in循环遍历json对象的数据


使用for in遍历json对象数据,如果数据中的名称有为数字的话,只对正整数有效,那么先会输出为正整数的数据,后面其他的会按照原来数据中定义的顺序不变输出。

  • 针对名称为数字的json对象数据进行测试,代码如下:
<script type="text/javascript">

 var json_obj_data = 
{
    "40":{"title":"all" , "name" :"all promotions" ,"id" :"all"},
    "20":{"title":"best_room_rate" , "name" : "best room rate" , "id" : "best_room_rate"},
    "10":{"title":"summer rate" , "name" : "summer rate" , "id" : "30"}    
}
//40,20,10可以不加双引号括住,输出的结果是一样的
for(var data in json_obj_data){ alert(data);//10->20->40 } </script>
  • 针对名称为字符串的json对象数据进行测试,代码如下:
var json_data = {"3promotion":{"title":"all","room_promotion_id":"all"},
                             "2promotion":{"title":"best_room_rate","roompromotion_id":"best_room_rate"},
                            "1promotion":{"title":"Summer Room rate" , "room_promotion_id":"30"}
                            };
            
for(var promotion in json_data){
          alert(promotion);//输出结果是按照上面定义的顺序
}
  • 针对名称为数字和字符串的json对象数据测试,代码如下:
var json_data = {"3promotion":{"title":"all","room_promotion_id":"all"},
                             "2promotion":{"title":"best_room_rate","roompromotion_id":"best_room_rate"},
                            "1":{"title":"Summer Room rate" , "room_promotion_id":"30"}
                            };
            
 for(var promotion in json_data){
        alert(promotion);//数据先输出的是名称为数字的,然后就按照顺序输出名称为字符串的
 }

具有两个名称为数字的,其他为字符串的json对象数据测试,代码如下:

var json_data = {"3promotion":{"title":"all","room_promotion_id":"all"},
                             "2promotion":{"title":"best_room_rate","roompromotion_id":"best_room_rate"},
                            "1":{"title":"Summer Room rate" , "room_promotion_id":"30"},
                            "0":{"title":"expecial rate" , "room_promotion_id":"60"}
                            };
            
for(var promotion in json_data){
      alert(promotion);//输出结果为0->1->3promotion->2promotion
}

具有名称为数字,其中有为负数的将会被当作字符串处理,其他为字符串的json对象数据测试,代码如下:

var json_data = {"3promotion":{"title":"all","room_promotion_id":"all"},
                             "2promotion":{"title":"best_room_rate","roompromotion_id":"best_room_rate"},
                            "1":{"title":"Summer Room rate" , "room_promotion_id":"30"},
                            "0":{"title":"expecial rate" , "room_promotion_id":"60"},
                            "-1":{"title":'demo3','room_promotion_id':"demo3"}
                            };
            
 for(var promotion in json_data){
       alert(promotion);//0->1->3promotion->2promotion->-1
 }

 包括小于1的数字名称,以及数字为负数的名称,代码测试如下:

var json_data = {"3promotion":{"title":"all","room_promotion_id":"all"},
                             "2promotion":{"title":"best_room_rate","roompromotion_id":"best_room_rate"},
                            "1":{"title":"Summer Room rate" , "room_promotion_id":"30"},
                            "0.25":{"title":"expecial rate" , "room_promotion_id":"60"},
                            "-1":{"title":'demo3','room_promotion_id':"demo3"}
                            };
            
for(var promotion in json_data){
    alert(promotion);//1->3promotion->2promotion->0.25->-1
}

 

转载于:https://www.cnblogs.com/shuman/p/3899977.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值