如何从 JSON 响应中获取值

How to get value from the JSON response

我从服务器收到以下响应:

{"aster":"3","daffodil":"4","rose":"3","totalItems":10,"totalPrice": “31.90”} RESPONSE

而且,我想把它放在 table 中,看起来像这样:

问题是我不知道如何获取值(对于 "Quantity" 列)。这是我的代码:

function processServerResponse(data) {
if (data.products.length > 0) {
    $("#orderForm").hide();
    $("#summaryForm").show();
    var html = '';
    $.each(data.products, function(key, value) {
        html += "<tr><td>"+value.name+"</td><td>"+?????+"</td></tr>"
    });
    $(html).appendTo("tbody");
    $("#totalItems").text(data.totalItems);
    $("#totalPrice").text(data.totalPrice);
}

}

在此之前,这是我的 $.ajax 的样子(代码更大,你不必读出来):

$("#orderForm button").click(function (e) {
    e.preventDefault();
    var formData = $("#orderForm").serialize();
    $("#popup").show();
    $("body *").not("#popup").css("opacity", 0.5);
    $("input").prop("disabled", true);
    $.ajax({
        url: "http://localhost/",
        type: "post",
        data: formData,
        dataType: "json",
        dataFilter: function(data, dataType) {
            primljeniOdgovor = $.parseJSON(data);
            var cleanData = {
                totalItems: primljeniOdgovor.totalItems,
                totalPrice: primljeniOdgovor.totalPrice
            };
            delete primljeniOdgovor.totalItems;
            delete primljeniOdgovor.totalPrice;
            cleanData.products = [];
            for (prop in primljeniOdgovor) {
                cleanData.products.push({
                    name: prop,
                    quantity: data[prop]
                })
            }
            return cleanData;
        },
        converters: {
            "text json": function(data) {
                return data;
            }
        },
        success: function(data) {
            processServerResponse(data);
        },
        complete: function() {
            setTimeout(function() {
                $("#popup").hide();
                $("body *").not("#popup").css("opacity", 1);
                $("input").prop("disabled", false);
            }, 1500);
        }
    });
})

我从 value.name 的回复中得到了名字,但我不知道如何得到那个值(数量)?

您的代码有误。

一定是

                cleanData.products.push({
                    name: prop,
                    quantity: primljeniOdgovor[prop]    //not data[prop]
                })

而不是 quantity: data[prop]data 只是一个未解析的字符串对象。 primljeniOdgovor 是包含 属性 值的解析对象。

http://jsfiddle.net/t7n2tafk/