从Ajax请求中提取字段



我有以下Jquery Ajax请求:

function DoPaymentSearch() {
var start,end;
start=Date.now();
var getQuotesSuccess = function(results){
end=Date.now();
alert(JSON.stringify(results));
};
$.ajax({
type: 'POST',
contentType: 'application/json',
url: 'https://a-quote-server.com/',
data: JSON.stringify(quoteRequest),
success: getQuotesSuccess,
dataType: 'json',
processData : 'false',
crossDomain : true
});
}
$(document).ready(DoPaymentSearch);

给出的JSON字符串看起来像这样:

{"VehicleResults":[{"Id":"0","FinanceProductResults":[{"Term":48,"AnnualMileage":10000,"Deposits":1000,"ProductResults":[{"Key":"HP","Payment":358.9},{"Key":"PCP","Payment":267.53}]}]}]}

然而,我很难从中提取HP和PCP支付字段。我想把它们附加到页面上的一些文本中。

替换为:

$('#content').append(results.VehicleResults.FinanceProductResults.ProductResults.Key.HP.Payment);

不是工作。

您的ProductResultsJSON数组所以要从该数组中获得所有值,您需要使用一些循环来迭代它。

演示代码 :

var results = {
"VehicleResults": [{
"Id": "0",
"FinanceProductResults": [{
"Term": 48,
"AnnualMileage": 10000,
"Deposits": 1000,
"ProductResults": [{
"Key": "HP",
"Payment": 358.9
}, {
"Key": "PCP",
"Payment": 267.53
}]
}]
}]
}
//if only first one to fetch
/*$('#content').append(results.VehicleResults[0].FinanceProductResults[0].ProductResults[0].Key);
$('#content').append(results.VehicleResults[0].FinanceProductResults[0].ProductResults[0].Payment);*/
//if all values from `ProductResults` need to be fetch
$(results.VehicleResults).each(function(i, value) {
console.log(value.Id)
$(value.FinanceProductResults).each(function(i, values) {
console.log(values.Term)
$(values.ProductResults).each(function(i, val) {
$('#content').append("<p> Key : " + val.Key + " | Payment :" + val.Payment + "</p>")
})
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="content">
</div>

最新更新