2016-03-31 6 views
1

Ich möchte einfach einen bestimmten Wert aus einem JSON-Array festlegen.Wie verwende ich eine Variable als Index, um einen bestimmten Wert aus einem JSON-Array in Javascript zu erhalten?

Probe von JSON-Array:

{ 
    "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" 
    } 
} 

Dies funktioniert in Javascript:

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

Aber ich möchte verwenden, um eine dynamische Variable ein Datensatz zu nennen, wie folgt aus:

var my_variable = 00002; 

//OR I've tried: 

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

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

Egal was ich mache, ich kann keinen variablen Mid-Array-Aufruf verwenden .

Hilfe bitte!

+1

Was ist 'meine_variable'? Arbeitet hier: https://jsfiddle.net/wsq3yj30/ – Rayon

+0

Sorry, ich habe gerade einen Schnitt gemacht. Idealerweise wäre "my_variable" 00002, 00003, bis zu 99999 wirklich ... – Graeme

+0

Tun Sie einfach: 'var my_variable =" 00002 "', Sie fügen nicht benötigte Anführungszeichen ('" '00002' "') hinzu, deshalb kann es nicht finden. –

Antwort

2

Verwenden Sie die Zeichenfolge als Schlüssel.

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

Für alle Schlüssel vom Objekt bekommen, können Sie 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

Ihr Schlüssel ist eine Zeichenfolge, b Aber deine Variable ist nicht, also gibt es keine Übereinstimmung. Nur diese verwenden:

var my_variable = "00002"; 
0

Um wichtige Elemente für ein JSON-Objekt zu nutzen, müssen Sie Strings verwenden, aber wenn nicht, wird es versuchen, den Wert in eine Zeichenfolge zu konvertieren .toString() verwenden. Für Ihren ersten Fall versuchen Sie eine Nummer zu definieren:

var my_variable = 00002; 

Obwohl 00002 ist kein gültiger Wert für eine Zahl, als solche wird sie den Wert 2 und umgewandelt in einen String enthalten sie "2" ist. In Ihrem JSON gibt es keinen solchen javascript_array["2"]. Der zweite Fall hat ein ähnliches Problem:

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

Auch gibt es nicht so javascript_array["'2'"], zusammen mit dieser den Sie hinzufügen, nicht benötigten Anführungszeichen '...'. In diesem Fall (als andere hingewiesen) einfach definieren my_variable als eine Zeichenfolge mit dem Wert "00002".

var my_variable = "00002"; 
Verwandte Themen