2012-03-13 6 views
0

У меня есть объект JSON в качестве такого2 мерных JSON синтаксического

{ 
    "Data": [ 
     { 
      "Iden": "12", 
      "Date": "01/23/2011", 
      "City": "Clearwater", 
      "State": "FL" 
     }, 
     { 
      "Iden": "12", 
      "Date": "02/09/2012", 
      "City": "Elgin", 
      "State": "IL" 
     }, 
     { 
      "Iden": "00010-LV01-12", 
      "Date": "06/22/2010", 
      "City": "Newport Beach", 
      "State": "CA" 
     } 
    ] 
} 

Как вы можете видеть, он имеет 3 строки и 4 столбца. Как использовать .each в jquery для итерации через этот объект?

Я пробовал:

$.each(Data, function() { 

но это только сделали первую итерацию

+0

использование Data.d в качестве параметра для .each – Arun

+2

Если вы назначили весь разобран объект на «Данные», вы, вероятно, хотите «Data.Data». Btw, http://jsonlint.org/ отлично подходит для форматирования JSON ** и ** он проверяет ваш JSON :) –

+0

показать код, где вы обращаетесь к json – charlietfl

ответ

1

jQuery.each() могут перебрать массивы, карты/объекты, но параметры функции имеют несколько разные значения в каждом конкретном случае:

$.each(Data.Data, function(i) { 
    // 'this' is the array element, i is the index 
    $.each(this, function(key, value) { 
     // 'this' is the value of the object item 
     // key is the map/object key, value is value 
    }); 
}); 

It Важно отметить, что всегда находится в формате Object, даже если это строка или номер.

Демо: http://jsfiddle.net/jtbowden/acySP/

1

Вы должны использовать вложенный цикл. Как так:

jQuery.each(Data, function() { 
    // `this` now points to the row of data 
    jQuery.each(this, function(key, value) { 
     // process here 
    }); 
}); 

EDIT: Изменен внутренний обратный вызов использовать key, value в качестве аргументов - более применимых для этого сценария.

+0

Зачем это делать? У него только один массив. –

+0

@Chris: '$ .each()' также может выполнять итерацию по картам/объектам. –

+0

А, хороший момент. Я также не заметил, что @Nate ссылается на свойства как на «столбцы», поэтому это решение имеет больше смысла в этом отношении. –

0

если это в AJAX запроса, такие как

$.getJSON(url, function (data){ 
    /* main JSON object is data, array Data is inside main object, need to iterate over it*/ 
     $.each(data.Data, function(key, item){ 
     $('body').append('<p>'+item.City +', '+item.State+'</p>'); 
    }) 
}) 
Смежные вопросы