-
json
一、对比数组与json写法
【案例】
如果数组:
var arrUrl=['img/1.png','img/2.png','img/3.png','img/4.png'];
var arrText=['宠物','图片二','图片三','面具'];
用json写:
var imgData ={
utl:['img/1.png','img/2.png','img/3.png','img/4.png'],
text:['宠物','图片二','图片三','面具'];
};
alert(imgData.url[2])//img/3.png
二、json写法中的''和.和[]
【案例】
var json2={name:'miaov'};
var json2={'name':'miaov'};
//都正确,只是下面name加了引号''后更为安全稳定
都正确,只是name加了引号后更为安全稳定
alert(json2.name);
alert(jason2['name'];
//上面的两种读取写法:.或者[]也都是正确的
写法:.或者[]也都是正确的
json2.name='abc';
json2['name']='ABC';
//上面的两种改写方法也都正确
三、Jason可以包含数字,字符串,数组等;数组也可以包字符串
【案例】:
var json2={abc:123,xyz:''}
////{[],[],[]} [{},{},{}]json可以包含数组,数组也可以包含json
var arr=[{'name':'TM','age':23},{'name':'leo','age':32}];
alert(arr[0].name+'今年有'+arr[1]['age']);
-
for in遍历
一、遍历与获取验证
【案例】
var json4 ={'name':'miaov','age':3,'fun':'前端开发'};
for(var attr in json4){
alert(attr);//name,age,fun
alert(json4[attr]);//miaov,3,前端开发
alert(json4['attr']);//undefined 加了引号是去找是否有attr属性
}
【注意】:alert(json4[attr])与alert(json4['attr'])不同
二、有数组时,for in与for的嵌套
【案例】
var json5={
'url':['img/1.png','img/2.png','img/3.png','img/4.png'],
'text':['宠物','图片二','图片三','面具'];
};
for(var attr in json5){
for(var i=0;i<json5[attr].length;i++){
alert(json5[attr][i]);//img1.png,img/2.png,...面具
}
}
这说明for in循环可以嵌套for
var arr={[],[],[]}
反过来for循环也可以嵌套for in
var arr=[{},{},{}]
三、for in遍历对象属性
window下面有多少属性,及属性名对应的值:
<script>
var str="";
var num =0;
for(var attr in window){
str +=num+ '.'+ attr + ':'+window[attr]+'<br/>';
num++;
}
document.body.innerHTML=str;
</script>
四、json中可以用for吗?(不可以)数组可以用for in 吗?(可以)
var json={
'url':['img/1.png','img/2.png','img/3.png','img/4.png'],
'text':['宠物','图片二','图片三','面具'];
};
alert(json.length);//undefined说明json没有长度length概念
for(var i=0;i<json.length;i++){
}
//上面都测试了json没有长度length概念,所以json不用for
var arr=['a','b','c'];
for(var i in attr){
alert(i);//0,1,2
alert(arr[i]);//a,b,c
所以for in可以用于数组
}