定义 修改 获取 遍历json对象的方法详解

json非常适合服务器和js之间进行数据的交互; var json = {name:'张三',age:18};//定义jsonalert(json.name); // 访问jsonvar arrUrl = ['img/1.jpg','img/2.jpg','img/3.jpg','img/4.jpg'];va...

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 会弹出这三个
}

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

651 篇文章

作家榜 »

  1. admin 651 文章
  2. 粪斗 185 文章
  3. 王凯 92 文章
  4. 廖雪 78 文章
  5. 牟雪峰 12 文章
  6. 李沁雪 9 文章
  7. 全易 2 文章
  8. Stevengring 0 文章