直接在JS里創(chuàng)建JSON數(shù)據然后遍歷使用

2023-04-17 17:15 更新

直接在JS里創(chuàng)建JSON數(shù)據,然后遍歷使用~
創(chuàng)建代碼如下:(創(chuàng)建的是JSON對象)

var YearSelect = {}; 
var Year = 2014; 
var DateOption; 
for (var i = Year; i < Year + 12; i++) { 
DateOption = {'Year':i, 'Month':i-Year+1}; 
/ alert(DateOption.Year) 
YearSelect[i] = DateOption; 
}

這里是創(chuàng)建一個JSON對象,包括了年份和月份的數(shù)據。
我為什么創(chuàng)建JSON對象,是因為我對JSON對象比較熟悉。php后臺返回的也是json對象。
json對象沒有l(wèi)ength屬性~~
所以遍歷的話要:

for(var key in YearSelect){ 
alert(YearSelect[key].Year); 
alert(YearSelect[key].Month); 
}

這樣就可以了~
記住一定要分辨好json的對象和數(shù)組~不然就一直是undenfined

js數(shù)組如何添加json數(shù)據及js數(shù)組與json的區(qū)別

下面給大家介紹js數(shù)組添加json數(shù)據的兩種方式。
// 第一種方式

personInfo
: [],
for(var i = 0; i < _STAGE.passengerInfoArray.length; i++){
var name = _STAGE.passengerInfoArray[i];
var person = {v:name, text:name};
this.personInfo.push(person);
}

// 第二種方式

var passengerInfo = {};
passengerInfo.psgTypeDesc = psgTypeDesc;
passengerInfo.flightPrice = flightPrice;
_STAGE.passengerInfoArray.push(passengerInfo);

js數(shù)組與 json 的區(qū)別

一、數(shù)組

1. 定義一維數(shù)組:

var s1=new Array();
s1=[1,2,3,4];//或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4;
alert(s1[0]);

 結果為1;

2. 定義二維素組:

var s1=new Array();
var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]];
alert(s1[1][0]);

 結果為2;

二、定義json對象

1. json對象       

var status_process = {
    " name5" : '閑置期',
    "name1" : '播種期',
    "name2" : '苗期',
    "name3" : '生長期',
    "name4" : '采收期'
   }    
  alert(status_process);

結果為:Object:Object;

2. json字符串

所謂json字符串,是指該字符串變量的值與json的格式相同,但是不是json對象,比如:

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

雖然status_process的值符合json對象的格式,但是它不是對象,只是一個字符串(是拼湊出來的);    

將字符串轉換為json對象使用函數(shù)eval,eval("(" + status_process+ ")");

結論:從后臺傳入到前臺的是json字符串,不是真正的json對象,因此需要使用eval函數(shù)轉換。

3. json對象的使用       

var status_process = {
      name5 : '閑置期',
     name1 : '播種期',
     name2 : '苗期',
      name3 : '生長期',
      name4 : '采收期'
     };
     alert(status_process["name5"]);
     alert(status_process.name5);

兩個都為:閑置期

4. json二維對象       

var status_process = {
 name5 : {name3:'空閑閑置期'},
 name1 : '播種期',
 name2 : '苗期',
 name3 : '生長期',
 name4 : '采收期'
};
alert(status_process["name5"]["name3"]);
alert(status_process.name5.name3);

結果都為:'空閑閑置期'


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號