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方法。可以用於遍歷數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM