我试图从API中访问某些货币的值,但我没有设法从函数中获取它们。
API解析后返回:{"ETH":{"USD":188.01},"BTC":{"USD":10330.41}}
这是我使用的代码:
fetch('https://min-api.cryptocompare.com/data/pricemulti?fsyms=ETH,BTC&tsyms=USD')
.then(val => val.json()).then(data => {
info = data; for (var item in data) { console.log(item.USD) }
});
它记录未定义。
当我在console.log(item)
中这样做时,它将ETH
和BTC
记录为字符串,而不是对象。当我在控制台(.then之外)写info.ETH.USD
时,我会得到结果。
我做错什么了?
发布于 2019-08-26 09:25:24
它不适用于您的原因是,您正在遍历对象并返回键而不是实际的对象。item
是指对象的keys
。
试试这个:
fetch('https://min-api.cryptocompare.com/data/pricemulti?fsyms=ETH,BTC&tsyms=USD').
then(res => res.json())
.then(data => {
console.log("The object", data)
for(var item in data) {
console.log(data[item])
}
})
现在您可以将属性称为 data[item].USD
。
发布于 2019-08-26 09:54:12
我认为您与JSON对象操作混淆了。在使用JSON对象时,学习一些通常有用的东西。
从JSON对象获取值:
var obj = {"ETH":{"USD":188.01},"BTC":{"USD":10330.41}};
用于在初始级别获取的:
obj["ETH"] // return {"USD":188.01}
嵌套级别的获取:
obj["ETH"]["USD"] // return 188.01
在您的情况下,您只打印密钥。
更新语法:
for(let item in data) {
console.log(data[item])
}
输出:
{
"USD": 187.98
}
{
"USD": 10302.56
}
https://stackoverflow.com/questions/57662234
复制相似问题