Вы должны установить тип данных в 'json' (или использовать `.getJSON () ´, тогда jQuery проанализирует ответ за вас. (РЕДАКТИРОВАТЬ: На самом деле jQuery уже распознает ответ как JSON и анализирует для вас, так что вы не все равно не нужно разбирать.)
И поскольку данные ответов являются простыми объектами JavaScript, имеет смысл не заключать их в jQuery, а использовать метод jQuerys "other" .each()
:
$.post('/echo/json/',{
dataType: "json",
"json": JSON.stringify({
"rows": [
{
"cell1":"row 2 cell 1",
"cell2":"row 2 cell 2"
},
{
"cell1":"row 3 cell 1",
"cell2":"row 3 cell 2"
}
]})
},
function(response) {
$.each(response.rows, function() {
var row = '<tr><td>'+ this.cell1+'</td><td>'+ this.cell2+'</td></tr>';
$('#tableID > tbody').append(row);
});
}
);
РЕДАКТИРОВАТЬ: И вам нужно перебрать response.rows
и ни response
. И Джефф тоже прав.
http://jsfiddle.net/LPGeV/15/