オブジェクトを反復処理しようとしています。ブラウザにJSONビューは次のようになります。オブジェクトを反復処理する方法は?
["<li id='0'>[object Object]</li>", "<li id='1'>[object Object]</li>",]
は実際に私が望んでいた:私は、コンソールのメッセージを参照してください開発ツールで
$(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>");
});
});
:
{
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のメソッドを使用しましたすべてのキー値をネストされたリスト要素として持つこと。これを取得するために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であること。 –
私はforループを使用しますか? – ytsejam
'postalcodes'配列から得ようとしている値は何ですか? –