2011-01-07 7 views
0

Привет У меня есть массив JSON возвращается с сервера .. это выглядит примерно так:JQuery итерация JSON объект

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

У меня есть это:

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

и Im пытается создать изображения, основанные на данных, но я борюсь с jQuery

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

}); 

Как я могу заставить его добавить imag es в div?

+0

Это фактическое JSON? Это недопустимо ... – lonesomeday

ответ

4

Во-первых, ваш JSON недействителен. Вы можете проверить его здесь: http://jsonlint.com

Я думаю, что вы пытаетесь сделать, это:

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

Обратите внимание на двойные кавычки, которые отсутствуют в вашем коде. В JSON вам необходимо использовать двойные кавычки (никогда не одиночные или без кавычек) как по ключу, так и по значению.

Во-вторых, вы пытаетесь выполнить итерацию значения, а не массив.

Try с этим:

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

Что делать, если каждый элемент имеет больше значений? например, «ImageUrl»: «http://domain.com/image.jpg», «Alt»: «FooBar»} – raklos

+0

Извините, моя ошибка. Как вы можете видеть в обновленном примере, вы можете получить доступ к объекту с помощью img.ImageUrl, поэтому, если вы хотите получить доступ к Alt, просто сделайте это с помощью img.Alt. Надеюсь, это поможет! – mekwall

+1

Я проверил сайт JSON (http://www.json.org/), и он определяет строку, заключенную в * двойную кавычку *. Джи, я думал, что достаточно одной цитаты. Я подозреваю, что двойная кавычка используется для согласованности в формате JSON. – OnesimusUnbound

Смежные вопросы