我需要解析包含此结构的JSON答案
{
"TariffItems": [
{
"TariffId": "89",
"TariffCode": "Y",
"TariffRusName": "Эконом"
},
{
"TariffId": "67",
"TariffCode": "C",
"TariffRusName": "Бизнес"
},
{
"TariffId": "87",
"TariffCode": "J",
"TariffRusName": "Премиум"
}
]
}
当我在Firebug中看到它时,它显示每个TariffItems都包含在对象中,这意味着以下jquery无法获取值。我应该怎么改变这个?
$.ajax({
url: "/Home/GetTariffs",
type: "post",
cache: false,
success: function (result) {
$.each(result, function () {
$("#tariffs").append($("<button class='btn btn-default tariff'/>").val(this.TariffId).text(this.TarifNameRus));
$("div#tariffs.btn-group button.btn.btn-default").first().addClass("active");
});
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
答案 0 :(得分:1)
检查Fiddle。它应该是:
$.each(result.TariffItems, function () {
$("#tariffs").append($("<button class='btn btn-default tariff'/>").val(this.TariffId).text(this.TariffRusName));
$("div#tariffs.btn-group button.btn.btn-default").first().addClass("active");
});
答案 1 :(得分:1)
将ajax代码更改为以下内容:
$.ajax({
url: "/Home/GetTariffs",
type: "post",
cache: false,
success: function (result) {
$.each(result.TariffItems, function () { // <---------
$("#tariffs").append($("<button class='btn btn-default tariff'/>").val(this.TariffId).text(this.TarifNameRus));
$("div#tariffs.btn-group button.btn.btn-default").first().addClass("active");
});
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
您正在收到一个对象。您要循环的项目是该对象的一部分。 因此,您必须使用对象项传递给jQuery的循环代码。
在这种情况下result.TariffItems