2016-03-31 55 views
1

我只是想找出一個JSON數組的特定值。 JSON陣列的如何使用變量作爲索引從Javascript中的JSON數組中獲取特定值?

樣品:

{ 
    "00002": { 
     "Job Number": "00002", 
     "Company": "Corporate", 
     "Supervisor": "Great Person", 
     "Date Input": "2016-01-07" 
    }, 

    "00003": { 
     "Job Number": "00003", 
     "Company": "SmallGuy", 
     "Supervisor": "Awful Person", 
     "Date Input": "2012-03-05" 
    } 
} 

此作品在Javascript:

alert(javascript_array["00002"].Company); 

但我想用一個動態變量打電話的記錄,像這樣:

var my_variable = 00002; 

//OR I've tried: 

var my_variable = "'"+00002+"'"; 

alert(javascript_array[my_variable].Company); //DOES NOT WORK. UNDEFINED?? 

無論我做什麼,我都不能使用可變中間數組調用。

請幫忙!

+1

什麼是my_variable?在這裏工作:https://jsfiddle.net/wsq3yj30/ – Rayon

+0

對不起,我只是做了一個編輯。理想情況下,「my_variable」將是00002,00003,最高可達99999 ... – Graeme

+0

只要:'var my_variable =「00002」',您添加了不需要的引號('「'00002'」'),這就是爲什麼它找不到它。 –

回答

2

使用字符串作爲鍵。

var my_variable = '00002'; 

var object = { "00002": { "Job Number": "00002", "Company": "Corporate", "Supervisor": "Great Person", "Date Input": "2016-01-07" }, "00003": { "Job Number": "00003", "Company": "SmallGuy", "Supervisor": "Awful Person", "Date Input": "2012-03-05" } } 
 
    my_variable = '00002'; 
 

 
document.write(object[my_variable].Company);

爲了得到從對象的所有按鍵,你可以使用Object.keys()

var object = { "00002": { "Job Number": "00002", "Company": "Corporate", "Supervisor": "Great Person", "Date Input": "2016-01-07" }, "00003": { "Job Number": "00003", "Company": "SmallGuy", "Supervisor": "Awful Person", "Date Input": "2012-03-05" } }, 
 
    keys = Object.keys(object); 
 

 
keys.forEach(function (k) { 
 
    document.write(object[k].Company + '<br>'); 
 
});

1

您的密鑰是一個字符串,B你的變量不是,所以沒有匹配。只要使用此:

var my_variable = "00002"; 
0

要訪問關鍵項目,你需要使用字符串JSON對象,但如果沒有它會嘗試將值轉換爲使用.toString()的字符串。對於你的第一個情況下,你正試圖定義一個數字:

var my_variable = 00002; 

雖然00002不是數字的有效值,因此它將包含的價值2,並轉換爲字符串,它是"2"。在你的JSON中沒有這樣的javascript_array["2"]。第二種情況也有類似的問題:

"'"+00002+"'" => "'"+2+"'" => "'2'" 

還沒有這樣javascript_array["'2'"],與此相伴你添加不必要的報價'...'。在這種情況下(與其他人指出的)只需將my_variable定義爲值爲"00002"的字符串即可。

var my_variable = "00002"; 
相關問題