无法在 JSON 内获取我想要的数据,这两者有什么区别?
Can't fetch data inside JSON what I want and what's the difference between this two?
我看过很多类似的问题,但找不到。我的目的是获取硬币名称和价值。 Coinmarketcap API 中有 2 个端点。第一个在评论行中给出了我想要的输出并且它有效,但我需要第二个但不起作用。两者具有相似的 JSON 结构。
第一个端点的输出像这样 JSON https://pastebin.com/xSS85Sbd
name: 'Bitcoin', price: 43973.31953486187,
name: 'Ethereum', price: 3097.8947589293316
我在 2 日遇到了一些错误 JSON https://pastebin.com/0sDXXwxm
coin.data.map is not a function
Cannot read properties of undefined (reading 'name')
我在下面尝试了很多 console.log 有地图和没有地图的品种,但都没有成功。
coin.map(a => ({ name: a.name, price: a.quote.USD.price}))
coin.data.map(a => ({ name: a.name, price: a.quote.USD.price}))
async function getCoin(){
try {
//const response = await axios.get('https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?limit=2', {
const response = await axios.get('https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest?symbol=BTC,ETH', {
headers: {
'X-CMC_PRO_API_KEY': 'key',
},
});
const coin = response.data;
const result = coin.data.map(a => ({ name: a.name } ))
console.log(result);
//return coin;
} catch(ex) {
console.log(ex);
throw ex;
}
}
getCoin()
我真的很想知道我哪里错了。非常感谢。
不能运行因为它们的结构不同
第一个 JSON data
是 array 所以你可以使用 map
{
...
"data":[{"id":1,"...
...
}
第二个 data
是 object 所以它会抛出错误 coin.data.map is not a function
{
...
"data":{"BTC"...
...
}
更新
你可以这样获取硬币信息
const result = Object.keys(coin.data).map(coinName => {
const coinInfo = coin.data[coinName][0]
return {
name: coinInfo.name,
price: coinInfo.quote.USD.price
}
})
console.log('result: ', result)
我看过很多类似的问题,但找不到。我的目的是获取硬币名称和价值。 Coinmarketcap API 中有 2 个端点。第一个在评论行中给出了我想要的输出并且它有效,但我需要第二个但不起作用。两者具有相似的 JSON 结构。
第一个端点的输出像这样 JSON https://pastebin.com/xSS85Sbd
name: 'Bitcoin', price: 43973.31953486187,
name: 'Ethereum', price: 3097.8947589293316
我在 2 日遇到了一些错误 JSON https://pastebin.com/0sDXXwxm
coin.data.map is not a function
Cannot read properties of undefined (reading 'name')
我在下面尝试了很多 console.log 有地图和没有地图的品种,但都没有成功。
coin.map(a => ({ name: a.name, price: a.quote.USD.price}))
coin.data.map(a => ({ name: a.name, price: a.quote.USD.price}))
async function getCoin(){
try {
//const response = await axios.get('https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?limit=2', {
const response = await axios.get('https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest?symbol=BTC,ETH', {
headers: {
'X-CMC_PRO_API_KEY': 'key',
},
});
const coin = response.data;
const result = coin.data.map(a => ({ name: a.name } ))
console.log(result);
//return coin;
} catch(ex) {
console.log(ex);
throw ex;
}
}
getCoin()
我真的很想知道我哪里错了。非常感谢。
不能运行因为它们的结构不同
第一个 JSON data
是 array 所以你可以使用 map
{
...
"data":[{"id":1,"...
...
}
第二个 data
是 object 所以它会抛出错误 coin.data.map is not a function
{
...
"data":{"BTC"...
...
}
更新
你可以这样获取硬币信息
const result = Object.keys(coin.data).map(coinName => {
const coinInfo = coin.data[coinName][0]
return {
name: coinInfo.name,
price: coinInfo.quote.USD.price
}
})
console.log('result: ', result)