2016-03-31 9 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 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);

var my_variable = '00002'; 

オブジェクトからすべてのキーを取得するためには、使用することができます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()を使用して文字列に値を変換しようとします。あなたが数を定義しようとしているあなたの最初のケースの場合:00002ものの

var my_variable = 00002; 

は、次のような、それは価値2が含まれます、そしてそれは"2"だ文字列に変換し、多数の有効な値ではありません。 JSONにはjavascript_array["2"]はありません。あなたが不要な引用符'...'を追加しているこれに伴って

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

はまた、このようなjavascript_array["'2'"]がない。後者の場合には、同様の問題があります。この場合(が指摘したように)、値"00002"の文字列としてmy_variableを定義するだけです。

var my_variable = "00002"; 
関連する問題