我想通過一個對象迭代。在瀏覽器中,JSON視圖看起來是這樣的:如何遍歷一個對象?
{
postalcodes: [{
adminCode2: "708",
adminCode3: "70805",
adminName3: "Breitenwang",
adminCode1: "07",
adminName2: "Politischer Bezirk Reutte",
lng: 10.7333333,
countryCode: "AT",
postalcode: "6600",
adminName1: "Tirol",
placeName: "Breitenwang",
lat: 47.4833333
}, {
adminCode2: "708",
adminCode3: "70806",
adminName3: "Ehenbichl",
adminCode1: "07",
adminName2: "Politischer Bezirk Reutte",
lng: 10.7,
countryCode: "AT",
postalcode: "6600",
adminName1: "Tirol",
placeName: "Ehenbichl",
lat: 47.4666667
}, ]
}
直到現在我用的forEach方法:
$(document).ready(function(){
$.getJSON("http://api.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT&username=demo", function(data) {
$.each(data, function(key, val){
items.push("<li id='" + key + "'>" + val + "</li>");
});
});
在開發工具,我看到控制檯消息:
["<li id='0'>[object Object]</li>", "<li id='1'>[object Object]</li>",]
其實我想要的將所有關鍵值作爲嵌套列表元素。我怎樣才能糾正我的jQuery代碼來得到這個?
謝謝
編輯答案:這是我現在變成:
<script>
$(document).ready(function(){
$.getJSON("http://api.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT&username=demo", function(data) {
var items = [];
$.each(data, function (key, value) {
$('body').append($('<div></div>').html(key + ' (' + value.length + ' results)'));
var list = $('<ul></ul>');
$('body').append(list);
});
$.each(data.postalcodes, function(key, val){
for (var k in val) {
if (val.hasOwnProperty(k)) {
items.push("<li id='" + k + "'>" + val[k] + "</li>");
}
}
$("<ul/>", {
"class": "my-new-list",
html: items.join("")
}).appendTo("body");
});
});
});
</script>
注意,你所擁有的是一個對象,而不是JSON。 –
所以我應該用循環? – ytsejam
你想從'postalcodes'數組中獲得什麼值? –