当我想使用axios.get从Json数据或API中获取或获取某些特定字段时,response.data.key返回未定义

时间:2019-09-29 13:24:30

标签: javascript axios

当我向以下端点发送获取请求时 https://countriesnode.herokuapp.com/v1/countries/会返回如下的JSON数据...

{
        "name": "Andorra",
        "native": "Andorra",
        "phone": "376",
        "continent": "EU",
        "capital": "Andorra la Vella",
        "currency": "EUR",
        "languages": [
            "ca"
        ],
        "emoji": "??",
        "emojiU": "U+1F1E6 U+1F1E9",
        "code": "AD"
    },

它返回存储在JSON数据中的所有可用国家。它显示了所有字段,例如名称,本机等等。但是我想显示一些特定的字段,例如大洲和语言,而不是列表中的所有字段。我正在尝试

response.data.continent

,但返回未定义。我的获取请求是

 axios.get(`https://countriesnode.herokuapp.com/v1/countries/`)

如果我使用一个国家/地区进行过滤,它会显示正确的数据,但我想显示列表中所有国家/地区的字段。

1 个答案:

答案 0 :(得分:3)

https://countriesnode.herokuapp.com/v1/countries/返回一个对象数组,类似于您发布的对象...所以它是response.data[n].continent,其中n为0到249(因为响应中有250个对象)

这是一个使用javascript提取而不是axios的示例,但是原理是相同的

fetch('https://countriesnode.herokuapp.com/v1/countries/')
.then(r => r.json())
.then(data => data.map(({name, continent, languages}) => ({name, continent, languages})))
.then(result => {
  console.log(result);
});