2017-01-14 13 views
0

ちょうど知りたがって、私はどのように私のjsonオブジェクトを次の形式で反復することができるでしょうか?vanillajsのjson内のオブジェクトのオブジェクトからフィールドを選択するにはどうすればいいですか?

[ 
 
    {"page":1,"pages":1,"per_page":"600","total":264}, 
 
    [ 
 
    { 
 
     "indicator": 
 
    {"id":"NY.GDP.MKTP.CD","value":"GDP (current US$)"}, 
 
     "country":{"id":"1A","value":"ArabWorld"}, 
 
     "value":"2565871160292.11","decimal":"0","date":"2015" 
 
    }, 
 
    { 
 
     "indicator": 
 
     {"id":"NY.GDP.MKTP.CD","value":"GDP (current US$)"}, 
 
     "country":{"id":"S3","value":"Caribbean small states"}, 
 
     "value":"66935278418.3676","decimal":"0","date":"2015" 
 
    }, 
 
    { 
 
     "indicator": 
 
     {"id":"NY.GDP.MKTP.CD","value":"GDP (current US$)"}, 
 
     "country":{"id":"B8","value":"Central Europe and the Baltics"}, 
 
     "value":"1281495024762.4","decimal":"0","date":"2015" 
 
    } 
 
    ] 
 
]

Iは、例えばので、JSONオブジェクト

countries: function() { 
 
const URL = 'http://api.worldbank.org/countries/all/indicators/NY.GDP.MKTP.CD?date=2015:2015&per_page=600&format=json' 
 
let countries = [] 
 
fetch(URL).then(i => i.json()).then(j => countries.push(...j)) 
 
console.log(countries); 
 
}

を返します。このメソッドを持って、どのように私はdateフィールドを選択することができるであろうか?

おかげ -B

+0

可能な複製(http://stackoverflow.com/q/11922383/218196)。しかし、これはもっと助けになるかもしれません:[私はどのように非同期呼び出しから応答を返しますか?](http://stackoverflow.com/q/14220321/218196)。 –

答えて

1

はそれが好きあなたがアクセスした日付フィールドのように深くネストされたものを、選択するには> 2番目のインデックスは[0]あなたが持っている任意のインデックスをすることができる、

countries[1][0].date 

データ配列あなたのデータを

それをチェックhere

[アクセス/プロセス(ネストされた)オブジェクト、配列やJSON]の
+0

それはまさに私が思ったものです。しかし、私は次のエラーを受け取ります: 'Uncaught TypeError:未定義のプロパティ '0'を読み取れません。 – WorldWideBangers

+0

私は例を追加しました。指標は正しいフィールドではなかったため、データを変更しました。 – FabioCosta

+1

@WorldWideBangers:あなたの 'console.log(countries)'は**レスポンスを受信する前に**実行されていますので、レスポンスを受け取る前にあなたは 'countries'にアクセスしようとしています。 [非同期呼び出しからの応答を返すにはどうすればいいですか?](http://stackoverflow.com/q/14220321/218196) –

関連する問題