簡體   English   中英

如何使用變量作為索引從Javascript中的JSON數組中獲取特定值?

[英]How to use a variable as an index to get a specific value out of a JSON array in Javascript?

我只是想從JSON數組中找出一個特定的值。

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??

無論我做什么,我都不能使用可變的中陣調用。

請幫助!

使用字符串作為鍵。

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>'); }); 

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

var my_variable = "00002";

要訪問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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM