• JSON数组,JSON对象,数组的区别与基本操作整理


    JSON 语法规则

    JSON 语法是 javascript 对象表示语法的子集。
    数据在名称/值对中
    数据由逗号分隔
    花括号保存对象
    方括号保存数组
    

    JSON 名称/值对

    JSON 数据的书写格式是:名称/值对。
    名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
    "firstName":"John"
    

    JSON 值

    JSON 值可以是:
    数字(整数或浮点数)
    字符串(在双引号中)
    逻辑值(true 或 false)
    数组(在方括号中)
    对象(在花括号中)
    null
    

    JSON正常就是由对象和数组组成,对象使用对象的方法来进行操作。数组使用数组的方法来进行操作。

    数组

    var ourcountry=[["北京市"],["上海市"],["合肥市","芜湖市","蚌埠市"]]; // 数组
    alert(ourcountry[2][1]);
    

    JSON对象

    var status_process = {
                 	"name5" : '闲置期',
              	"name1" : '播种期',
              	"name2" : '苗期',
             	"name3" : '生长期',
             	"name4" : '采收期'
    } 
    alert(status_process["name5"]);
    alert(status_process.name5);
    // 两个都为:闲置期
    

    JSON字符串

    所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:

    var s1="{";
    var s2 = " 'name5' : '闲置期',   'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'";
    var s3="}";
    var  status_process=s1+s2+s3;
    

    JSON数组遍历

    packJson = [
    
            {"name":"zhang", "password":"123"},
    
            {"name":"li", "password":"456"}
    
    ];
    
    for(var p in packJson){//遍历json数组时,这么写p为索引,0,1
    
    	alert(packJson[p].name + " " + packJson[p].password);
    
    }
    
    // 或者
    for(var i = 0; i < packJson.length; i++){
    
            alert(packJson[i].name + " " + packJson[i].password);
    }
    

    JSON数组的操作

    1.定义

    var josnArry=[];
    

    2.添加

    jsonArry.push(jsonObj);
    

    3.删除

    delete jsonArry[0];
    splice(index,length):
    

    4.循环访问数组

    a.jquery

    $.each(jsonArry,function(index,item){
    	var userId=item.userId;          
    });
    

    b.一般方式

    for(var i=0;i<jsonArry.length;i++)
    {
    	var userId=jsonArry[i].userId;  
    }
    

    c.特殊方法

    for(var item in jsonArry)
    { 
    	var userId=jsonArry[item].userId;//注意:此处的item不是数组项,而是数组项的索引
    }
    

    JSON对象遍历

    myJson = {"name":"ji", "password":"123"};
    
    for(var p in myJson){//遍历json对象的每个key/value对,p为key
    
    	alert(p + " " + myJson[p]);
    
    }
    

    字符串和json对象和json对象数组相互转换

    var jsonStr  = "{"userId":"001"}";  // json对象字符串
    var jsonArryStr = "[{"userId":"001"},{"userId":"002"}]"; // json数组字符串
    var jsonObj  = JSON.parse(jsonStr);     // 字符串转为json对象
    var jsonArry = JSON.parse(jsonArryStr); // 字符串转为json数组
    var jsonStr  = JSON.stringify(jsonObj); // json对象转为字符串
    var jsonArryStr=JSON.stringify(jsonArry);// json数组转为字符串
    alert(jsonStr);
    alert(jsonArryStr);
    alert(jsonObj.userId);
    alert(jsonArry[0]['userId']);
    

    tips:

    只有数组或者json数组才可以使用length方法。json对象使用length方法无效。

    如果json对象的子元素是数组或者json数组,也可以使用length方法。可以用于遍历数据。

  • 相关阅读:
    贪心法(三):POJ题库中的贪心法应用例题
    贪心法(四):HDU题库中的贪心法应用例题
    C语言程序设计100例之(41):快速幂运算
    C语言程序设计100例之(36):四方定理
    C语言程序设计100例之(40):最大公约数问题
    C语言程序设计100例之(38):涂国旗
    相关性搜索简介——常规技术与应用
    Launch X431 HD3卡车诊断适配器评论和反馈
    如何修复更新时卡住的 GODIAG GD801?
    Highend扫描仪比较:Autel vs Snapon vs. Launch vs Bosch
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/5985371.html
Copyright © 2020-2023  润新知