在jQuery中使用GetJSON响应创建表

时间:2015-07-23 05:51:55

标签: jquery html json

我正在尝试使用jQuery的getJSON方法从我们的数据库中获取一些数据。我可以毫无问题地得到回复,但是当我尝试将其附加到页面时,它是未定义的。

示例json:

{ "ItemCount":1, "ProductID":"4220002", "ProdMfg":"", "Desc":"", "Quantity":33, "UnitPrice":1, "ExtPrice":33 }

jQuery代码:

$.getJSON('webcatpageserver.exe?aShoppingCart', function(data) {
    var table = '<table>';
    $.each(data, function(index, item) {
        table += '<tr><td>' + item.ProductID + '</td><td>' + item.Quantity + '</td>    </tr>';
    });
    table += '</table>';
    $("#mini-pallet").append(table);
});

HTML: 在HTML中,我看到显示“未定义”。

我假设我没有正确访问数据以显示它 - 但我可以使用正确的方向推动。谢谢!

2 个答案:

答案 0 :(得分:2)

您肯定需要一个正确方向的push(),可能是服务器页面中array_push()创建getJSON响应。 ; - )

您的响应对象当前不是数组,因此您的$.each()将遍历json对象中的每个属性,然后再找不到预期的属性。

这样的json对象
[{ "ItemCount":1, "ProductID":"4220002", "ProdMfg":"", "Desc":"", "Quantity":33, "UnitPrice":1, "ExtPrice":33 }]

将原始对象作为元素放入数组中可能会起作用。

答案 1 :(得分:0)

您的each循环,如此处的另一个答案所述,不是数组,也不是列表。因此,您正在迭代每个item但是,您没有获得任何字符串标记,因为它们不是对象,因此被忽略。

push()方法在这里很方便,但是,为了便于解释,您需要将每个循环转换为实际的字符串,因此它将被识别为整个字符串,而不是对象。