Verwenden Sie ein JSON-Array mit Objekten mit Javascript

Ich habe eine Funktion, die ein JSON-Array mit Objekten erhalten wird. In der Funktion werde ich in der Lage sein, durch das Array zu schleifen, auf eine Eigenschaft zuzugreifen und diese Eigenschaft zu verwenden. Zum Beispiel so:

Die Variable, die ich an die Funktion übergebe, sieht wie folgt aus:

[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]

function test(myJSON)
{
    // maybe parse my the JSON variable?
    // and then I want to loop through it and access my IDs and my titles
}

Irgendwelche Vorschläge, wie ich das Problem lösen kann?

Es handelt sich nicht um ein einzelnes JSON-Objekt. Sie haben ein Array von JSON-Objekten. Sie müssen zuerst eine Schleife über das Array ziehen und dann auf jedes Objekt zugreifen. Vielleicht ist das folgende Beispiel für den Start hilfreich:

var arrayOfObjects = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];

for (var i = 0; i < arrayOfObjects.length; i++) {
    var object = arrayOfObjects[i];
    for (var property in object) {
        alert('item ' + i + ': ' + property + '=' + object[property]);
    }
    // If property names are known beforehand, you can also just do e.g.
    // alert(object.id + ',' + object.Title);
}

Um mehr über JSON zu erfahren, lesen Sie diesen Artikel.

Aktualisierung: Wenn das Array von JSON-Objekten tatsächlich als einfache Zeichenkette übergeben wird, dann benötigen Sie hier tatsächlich eval().

var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
Kommentare (5)

Mit 'JSON-Array, das Objekte enthält' Ich nehme an, Sie meinen eine Zeichenfolge, die JSON enthält?

Wenn ja, können Sie die sichere Methode var myArray = JSON.parse(myJSON) (entweder nativ oder mit JSON2 eingebunden) oder die sichere Methode var myArray = eval("(" + myJSON + ")") verwenden. eval sollte normalerweise vermieden werden, aber wenn Sie sicher sind, dass der Inhalt sicher ist, gibt es kein Problem.

Danach iterieren Sie einfach wie gewohnt über das Array.

for (var i = 0; i < myArray.length; i++) {
    alert(myArray[i].Title);
}
Kommentare (0)

Ihre Frage fühlt sich ein wenig unvollständig, aber ich denke, was Sie suchen, ist ein Weg, um Ihre JSON zugänglich für Ihren Code:

Wenn Sie den JSON-String wie oben haben, müssen Sie nur Folgendes tun

var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');

dann können Sie auf diese Variablen mit etwas wie jsonObj[0].id usw. zugreifen

Lassen Sie mich wissen, wenn das nicht das ist, worauf Sie hinauswollten, und ich werde versuchen zu helfen.

M

Kommentare (2)