2017-04-14 68 views
0

我生成一個JSON看起來像這樣:JQuery的獲取價值的JSON通過關鍵

{ 
    "attendees": [ 
    { 
     "datum": "Tue, 11 Apr 2017 00:00:00 GMT", 
     "name": " Muylaert-Geleir", 
     "prename": "Alexander" 
    }, 
    { 
     "datum": "Wed, 12 Apr 2017 00:00:00 GMT", 
     "name": " Obolina", 
     "prename": "Angelina" 
    }, 
    { 
     "datum": "Thu, 13 Apr 2017 00:00:00 GMT", 
     "name": " Obolina", 
     "prename": "Angelina" 
    }, 
] 
} 

我如何獲得從所有密鑰的值,並將其放置到表? 這是我已經有了...

$.ajax(settings).done(function (response) { 

for (i = 0; i < response.attendees.length; i++){ 
    console.log(i); 
$('tbody').append('<tr><td>'+ response.attendees["name"] + '</td><td>'+ response.attendees["prename"] + '</td><td>' + response.attendees["datum"] + '</td></tr>'); 
console.log(response.attendees["name"]); 
} 
}); 

回答

1

訪問它你幾乎沒有使用response.attendees[i]用於獲取,而不是response.attendees

$('tbody').append('<tr><td>'+ response.attendees[i]["name"] + '</td><td>'+ response.attendees[i]["prename"] + '</td><td>' + response.attendees[i]["datum"] + '</td></tr>'); 
+0

非常感謝你,奮鬥的方式很難爲這一個 –

+0

@YniasReynders你歡迎,樂意幫助 – gurvinder372

0

如果不通過dataType:json你有JSON.parse解析它,然後你可以用.

$.ajax(settings).done(function (response) { 
    response = JSON.parse(response); 
    response.attendees.forEach(attendee){ 
     $('tbody').append('<tr><td>'+ attendee.name + '</td><td>'+ attendee.prename + '</td><td>' + attendee.datum + '</td></tr>'); 
     console.log(attendee.name); 
    } 
}); 
+0

你不需要解析()如果'settings'有正確的'dataType' – charlietfl

+0

嗯,這是真的,更新了我的答案:) – Mazz

0

你N個單獨的屬性以引用循環內的數組索引。

for (i = 0; i < response.attendees.length; i++){ 
    console.log(i); 

    console.log(response.attendees[i]["name"]); 

} 
0

你是需要提及的i增量值在for循環迭代

var response = { 
 
    "attendees": [{ 
 
     "datum": "Tue, 11 Apr 2017 00:00:00 GMT", 
 
     "name": " Muylaert-Geleir", 
 
     "prename": "Alexander" 
 
    }, 
 
    { 
 
     "datum": "Wed, 12 Apr 2017 00:00:00 GMT", 
 
     "name": " Obolina", 
 
     "prename": "Angelina" 
 
    }, 
 
    { 
 
     "datum": "Thu, 13 Apr 2017 00:00:00 GMT", 
 
     "name": " Obolina", 
 
     "prename": "Angelina" 
 
    }, 
 
    ] 
 
} 
 

 
for (i = 0; i < response.attendees.length; i++) { 
 
    $('tbody').append('<tr><td>' + response.attendees[i]["name"] + '</td><td>' + response.attendees[i]["prename"] + '</td><td>' + response.attendees[i]["datum"] + '</td></tr>'); 
 
}
table,tr,td{ 
 
border:1px solid #222; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
<tbody> 
 
</tbody> 
 

 
</table>

0

在一個循環中添加的DOM元素是不好的性能。該DOM操作是最昂貴的之一,所以相反,你應該保存它,並添加一次全部

var attendees = response.attendees.map(function(attendee){ 
    return '<tr><td>'+ attendee.name + '</td><td>'+ attendee.prename + '</td><td>' + attendee.datum + '</td></tr>' 
}); 
$('tbody').append(attendees.join('')); 

我使用map這裏遍歷數組創建一個字符串數組(HTML),並在年底加入他們的行列