2009-12-07 8 views
10

Ich Abrufen von JSON mit jQuery getJSON Aufruf.Wie können Sie in JavaScript/jQuery Daten abrufen, die Leerzeichen in ihrem Namen enthalten?

Mein Problem ist, dass einige der Felder in der zurückgegebenen JSON Leerzeichen in ihnen haben.

Wie kann ich diese Werte aus dem JSON abrufen, ohne die Quelldaten zu ändern? Siehe Zeile markiert "ERROR" unter:

$.getJSON(url, null, function(objData) { 
    $.each(objData.data, function(i, item) { 
    var zip = item.Zip; 
    var fname = item.First Name; //ERROR 
    }); 
}); 

Beispiel JSON:

jsonp123456789({"data":[{"Zip":"12345","First Name":"Bob"},{"Zip":"23456","First Name":"Joe"},{"Zip":"34567","First Name":"Bill"}]}) 

Dank

+0

Warum gibt es ein Leerzeichen im Namen JSON, wenn Sie es als ein Javascript-Objekt verwenden möchten? – ChaosPandion

+0

Leerzeichen sind in Bezeichnern erlaubt, umständlich, aber erlaubt. –

+0

Ich weiß, du kannst es tun. Die Frage ist, warum nicht einfach Vorname verwenden, damit Sie die schöne saubere Punktsyntax verwenden können. – ChaosPandion

Antwort

18

Array Member-Access-Notation als auch auf Objekte funktioniert.

Sie können dies für beliebige Strings (die keine legalen Bezeichner sind) sowie für Variablen verwenden.

var fieldName = "First Name"; 
var fname = item[fieldName]; 
8
$.getJSON(url, null, function(objData) { 
    $.each(objData.data, function(i, item) { 
    var zip = item.Zip; 
    var fname = item["First Name"]; //Changed this 
    }); 
}); 

Referenz das Element als Schlüssel anstelle der Punktnotation