2011-01-07 9 views
0

Hallo ich eine json Array vom Server zurückgegeben werden .. es so etwas wie folgt aussieht:jquery Iterierte json Objekt

[{ ImageUrl="http://www.google.com"}, { ImageUrl="http://www.bing.com"}] 

Ich habe dies:

<div id="images"></div> 

und Im Versuch zu erstellen Bilder basieren auf den Daten, aber ich kämpfe mit der jquery

$.each(json.imageData.ImageUrl, function (i, ImageUrl) { 
    $("<img/>").attr("src", ImageUrl).appendTo("#images"); 

}); 

Wie kann ich es imag hinzufügen lassen es zum div?

+0

Ist das die tatsächliche JSON? Es ist ungültig ... – lonesomeday

Antwort

4

Erstens ist Ihr JSON ungültig. Sie können es hier bestätigen: http://jsonlint.com

Ich denke, was Sie zu tun versuchen, ist dies:

[ 
    { 
     "ImageUrl": "http://domain.com/image.jpg" 
    }, 
    { 
     "ImageUrl": "http://domain.com/image2.jpg" 
    } 
] 

Beachten Sie die doppelte Anführungszeichen, die im Code fehlten. In JSON müssen Sie doppelte Anführungszeichen (weder einzeln noch ohne Anführungszeichen) sowohl für den Schlüssel als auch für den Wert verwenden.

Zweitens versuchen Sie, den Wert und nicht das Array zu iterieren.

Versuchen mit diesem:

$.each(json.imageData, function (i, img) { 
    $("<img>").attr("src", img.ImageUrl).appendTo("#images"); 
}); 
+0

Was wäre, wenn jeder Gegenstand mehr Werte hätte? Beispiel: {"ImageUrl": "http://domain.com/image.jpg", "Alt": "FooBar"} – raklos

+0

Entschuldigung, mein Fehler. Wie Sie im aktualisierten Beispiel sehen können, können Sie mit img.ImageUrl auf das Objekt zugreifen. Wenn Sie also auf Alt zugreifen wollen, tun Sie es einfach mit img.Alt. Ich hoffe, das hilft! – mekwall

+1

Ich überprüfte die JSON-Site (http://www.json.org/) und definiert String wie in * double quote * eingeschlossen. Meine Güte, ich dachte, ein einfaches Zitat ist genug. Ich vermute, dass Doppelzitat aus Gründen der Übereinstimmung im JSON-Format verwendet wird. – OnesimusUnbound