[英]Get AJAX Request and Looping Through JSON
我正在使用GET ajax請求從數據庫中檢索一些JSON數據。 我想循環瀏覽並打印某些項目。 例如,我只想打印stylist_1
所有地址。 問題在於它僅打印最后一個項目。
代碼如下所示:
var stylist1Addresses;
function getData() {
$.ajax({
url: '/getData',
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (data) {
for (var i = 0; i < data.stylist_1.length; i++) {
stylist1Addresses = data.stylist_1[i];
}
}
});
console.log(stylist1Addresses);
}
樣本數據:
{
"stylist_1": [
{
"Address": "1 Stn Main",
"Phone": "403-990-9033"
},
{
"Address": "474 Cirrus Rd",
"Phone": "403-995-3243"
},
{
"Address": "1591 Stn St",
"Phone": "403-982-8893"
}
],
"stylist_2": [
{
"Address": "219 Welch Blvd",
"Phone": "587-436-3171"
},
{
"Address": "374 Main Rd",
"Phone": "587-315-9431"
},
{
"Address": "564 Main Rd",
"Phone": "403-938-9983"
}
]
}
這是兩個可能的解決方案。
第一個解決方案:
var stylist1Addresses;
function getData() {
$.ajax({
url: '/getData',
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (data) {
for (var i = 0; i < data.stylist_1.length; i++) {
stylist1Addresses = data.stylist_1[i];
console.log(stylist1Addresses);
}
}
});
}
這將產生三個控制台日志,每個地址之一。
第二種解決方案:
var stylist1Addresses = [];
function getData() {
$.ajax({
url: '/getData',
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (data) {
for (var i = 0; i < data.stylist_1.length; i++) {
stylist1Addresses.push(data.stylist_1[i]);
}
console.log(stylist1Addresses);
}
});
}
這將產生一個控制台日志,該日志包含所有三個地址。
你在找什么
您將在每個循環中更新'stylist1Addresses'變量。
嘗試將“ stylist1Addresses”變量初始化為這樣的數組:
var stylist1Addresses = [];
並替換此行:
stylist1Addresses = data.stylist_1[i];
有了這個:
stylist1Addresses.push(data.stylist_1[i]);
'push'將把每個循環上的項目添加到'stylist1Addresses'數組。
注意:如果只想獲取地址,則應改用此行
stylist1Addresses.push(data.stylist_1[i].Address);
這就是我將僅打印stylist_1中的地址的方式
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
var $string = '{THE JSON Here}';
$json = $.parseJSON($string);
for ( var i in $json ) {
if ( i === 'stylist_1') {
var list = $json[i];
console.log(list[0].Address);
return;
}
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.