json非常适合服务器和js之间进行数据的交互;
var json = {name:'张三',age:18};//定义json
alert(json.name); // 访问json
var arrUrl = ['img/1.jpg','img/2.jpg','img/3.jpg','img/4.jpg'];
var arrTxt = ['海上帆船','小台灯','椰子树','照相机'];
// 以上数组用json格式进行存储
var imgData = {
url:['img/1.jpg','img/2.jpg','img/3.jpg','img/4.jpg'],
txt:['海上帆船','小台灯','椰子树','照相机']
};
alert(imgData.url);//访问整个url ['img/1.jpg','img/2.jpg','img/3.jpg','img/4.jpg']
alert(imgData.url[2]);//'img/3.jpg' 访问url数组中下标为2的数组
json格式:
var json2 = {name:'张三'};//安全性差
var json2 = {'name':'张三'};//推荐这种写法,比较安全
访问json(两种方式):
alert(json2.name);//张三
alert(json2['name']);//张三
改写json:
json2.name = '李四';
alert(json2.name);//李四
数组中包含json:
// 数组里也可以包含json
var arr = [{'name':'张三','age':18},{'name':'李四','age':20}];
alert(arr[0].name);//张三 访问json
alert(arr[0].name+'今年有'+arr[1].age+'岁了');//张三今年有20岁了
遍历json中的内容:
只有一组时:
// 遍历json
var json3 = {'name':'张三','age':18,'身高':180,'体重':120,'爱好':'篮球'};
for( var attr in json3 ){
alert(attr);//name age 身高 体重 爱好
alert(json3[attr]);//张三 18 180 120 篮球
}
json中有数组时:
var json4 = {
url:['img/1.jpg','img/2.jpg','img/3.jpg'],
txt:['海上帆船','小台灯','椰子树']
};
for(var attr in json4){//先for in遍历json,再for遍历数组
for(var i = 0;i<json4[attr].length;i++){
alert(json4[attr][i]);//'img/1.jpg','img/2.jpg','img/3.jpg','海上帆船','小台灯','椰子树'
}
}
注意:
json没有长度的属性:json.length是不存在的;
for in 可以查看长度,例如:
var arr1 = ['a','b','c'];
for(var i in arr1){
alert(i);//0 1 2 会弹出这三个数
}
for(var i in arr1){
alert(arr1[i]);//a b c 会弹出这三个
}