如何从 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
是包含 属性 值的解析对象。
我从服务器收到以下响应:
{"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
是包含 属性 值的解析对象。