2

これは非常に簡単なはずですが、他の質問を見ても、うまくいきません。

次のリンクからサンプルの世界銀行データを取得しています。

世界銀行クエリ

これにより、次の JSONP 構造が返されます。

getWorldBankData([
{
    "page": 1,
    "pages": 1,
    "per_page": "100",
    "total": 52
},
[
    {
        "indicator": {
            "id": "DC.DAC.FINL.CD",
            "value": "Net bilateral aid flows from DAC donors, Finland (current US$)"
        },
        "country": {
            "id": "GB",
            "value": "United Kingdom"
        },
        "value": null,
        "decimal": "0",
        "date": "2011"
    },
    {
        "indicator": {
            "id": "DC.DAC.FINL.CD",
            "value": "Net bilateral aid flows from DAC donors, Finland (current US$)"
        },
        "country": {
            "id": "GB",
            "value": "United Kingdom"
        },
        "value": null,
        "decimal": "0",
        "date": "2010"
    },

国のタイトルを取りたい。私は次のコードでそうしようとしていました:

function getWorldBankData(json){
    $.each(json.country ,function(){
        var country = "<option>"+this.value+"</option>"
        $('#category').append(country)
    });
}

しかし、次のエラーが表示されます。

    a is undefined
f()jquery.min.js (line 16)
a = undefined
c = function()
d = undefined
getWorldBankData()oil.js (line 11)
json = [Object { page=1, pages=1, per_page="100", more...}, [Object { indicator={...}, country={...}, decimal="0", more...}, Object { indicator={...}, country={...}, decimal="0", more...}, Object { indicator={...}, country={...}, decimal="0", more...}, 49 more...]]
DC.DAC.FINL.CD?per_page=100&date=1960:2012&format=jsonP&prefix=getWorldBankData()DC.DAC...ankData (line 1)
[Break On This Error]   

...all(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)...

この行(11行目)は好きではありません:

$.each(json.country ,function(){

国を取得する正しい方法は何ですか? ありがとう。

4

1 に答える 1

4

テストしていませんが、このようなものでうまくいくはずです

function getWorldBankData(json){
    var item;
    var itemArray = json[1];
    for (var i in itemArray ) {
        item = itemArray[i];
        $('#category').append("<option>"+ item.country.value+"</option>");
    };
}
于 2012-05-16T18:51:40.013 に答える