Цикл по объектам ответа JSON - PullRequest
0 голосов
/ 28 июня 2018

Пожалуйста, я хочу перебрать этот ответ json от API, я получаю неопределенный ответ, когда регистрирую его на консоли.

   {
              "results": {
                  "AF": {
                      "alpha3": "AFG",
                      "currencyId": "AFN",
                      "currencyName": "Afghan afghani",
                      "currencySymbol": "؋",
                      "id": "AF",
                      "name": "Afghanistan"
                  },
                  "AI": {
                      "alpha3": "AIA",
                      "currencyId": "XCD",
                      "currencyName": "East Caribbean dollar",
                      "currencySymbol": "$",
                      "id": "AI",
                      "name": "Anguilla"
                  },
                  "AU": {
                      "alpha3": "AUS",
                      "currencyId": "AUD",
                      "currencyName": "Australian dollar",
                      "currencySymbol": "$",
                      "id": "AU",
                      "name": "Australia"
                  }
                }
            }

это мой код:

async function currency() {
    const response = await fetch(`https://free.currencyconverterapi.com/api/v5/currencies`);
    const json = await response.json();
    //console.log(json.results);
    for (key in json.results) {
    
        for(x in key){
            console.log(x)
        }

    
    }
    
}

Пожалуйста, что я делаю не так

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Конвертируйте ваш объект json в объект карты или набор объектов. Тогда вы можете попробовать зациклить его

var myMap = new Map (); myMap.set (jsonResp);

for (пусть данные myMap.keys ()) {console.log (data); }

Проверьте здесь для получения дополнительной информации

А. Подробнее здесь

0 голосов
/ 28 июня 2018

Я не частый пользователь async / await, но я думаю, что правильный путь будет,

async function currency() {
    const response = await fetch(`https://free.currencyconverterapi.com/api/v5/currencies`);
    const json = await response.json();  
    return json;      
}
currency().then(data=>{
    console.log(data);
});
0 голосов
/ 28 июня 2018

Я полагаю, что незначительного редактирования ниже должно быть достаточно ... Дайте мне знать, если оно работает.

async function currency() {
    const response = await fetch(`https://free.currencyconverterapi.com/api/v5/currencies`);
    const json = await response.json();
    //console.log(json.results);
    for (key in json.results) {

       for(x in json.results[key]){
           console.log(json.results[key][x])
       }

    }

}
...