1. 程式人生 > >JSON陣列,json字串,JSON物件,陣列的區別與基本操作整理

JSON陣列,json字串,JSON物件,陣列的區別與基本操作整理

JSON陣列,json字串,JSON物件,陣列的區別與基本操作整理




json字串 var objString = '{"a":"1","b":"2","c":"3"}';
json物件       var object = {"a":"1","b":"2","c":"3"};


json字串和json物件的轉換

json字串轉json物件,呼叫parse方法:

var b='{"name":"2323","sex":"afasdf","age":"6262"}'//json字串
var bToObject=JSON.
parse(b); console.log(bToObject.name);//2323
  • 1
  • 2
  • 3

json物件轉為json字串:

var a={"name":"tom","sex":"男","age":"24"}//json物件
var aToString=JSON.stringify(a);
console.log(aToString);//{"name":"tom","sex":"男","age":"24"}


JSON 語法規則

JSON 語法是 javascript 物件表示語法的子集。
資料在名稱/值對中
資料由逗號分隔
花括號儲存物件
方括號儲存陣列

JSON 名稱/值對

JSON 資料的書寫格式是:名稱/值對。
名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣在雙引號中),中間用冒號隔開:
"firstName":"John"

JSON 值

JSON 值可以是:
數字(整數或浮點數)
字串(在雙引號中)
邏輯值(truefalse)
陣列(在方括號中)
物件(在花括號中)
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方法。可以用於遍歷資料。

JSON 語法規則

JSON 語法是 javascript 物件表示語法的子集。
資料在名稱/值對中
資料由逗號分隔
花括號儲存物件
方括號儲存陣列

JSON 名稱/值對

JSON 資料的書寫格式是:名稱/值對。
名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣在雙引號中),中間用冒號隔開:
"firstName":"John"

JSON 值

JSON 值可以是:
數字(整數或浮點數)
字串(在雙引號中)
邏輯值(truefalse)
陣列(在方括號中)
物件(在花括號中)
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方法。可以用於遍歷資料。