【发布时间】:2021-10-22 01:27:12
【问题描述】:
我想我快疯了...我只是想为 NodeJS 做一些基本的 API 学习,我已经掌握了这个,它可以正常工作并在控制台上打印“United States Dollar”...
app.get("/", function(req, res){
const url = "https://api.coindesk.com/v1/bpi/currentprice.json"
https.get(url, function(response){
console.log(response.statusCode);
response.on("data", function(data){
const priceData = JSON.parse(data);
console.log(priceData.bpi.USD.description);
})
})
但是当我试图通过像这样使用 USD 的数组位置(即 [0])来访问它时...
app.get("/", function(req, res){
const url = "https://api.coindesk.com/v1/bpi/currentprice.json"
https.get(url, function(response){
console.log(response.statusCode);
response.on("data", function(data){
const priceData = JSON.parse(data);
console.log(priceData.bpi[0].description);
})
})
我崩溃了……
TypeError: Cannot read property 'description' of undefined
JSON 是
{
"time": {
"updated": "Oct 21, 2021 16:10:00 UTC",
"updatedISO": "2021-10-21T16:10:00+00:00",
"updateduk": "Oct 21, 2021 at 17:10 BST"
},
"disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
"chartName": "Bitcoin",
"bpi": {
"USD": {
"code": "USD",
"symbol": "$",
"rate": "63,222.0050",
"description": "United States Dollar",
"rate_float": 63222.005
},
"GBP": {
"code": "GBP",
"symbol": "£",
"rate": "45,779.4964",
"description": "British Pound Sterling",
"rate_float": 45779.4964
},
"EUR": {
"code": "EUR",
"symbol": "€",
"rate": "54,306.7540",
"description": "Euro",
"rate_float": 54306.754
}
}
}
USD 对象是 bpi 数组的 position[0] (对吗?)那么为什么我不能像上面那样点击它呢? This example 看起来和我的很相似,所以看不出我哪里出错了?
【问题讨论】:
-
bpi 包含一个对象,而不是一个数组,所以位置 0 不存在,试试
BPI.USD.description -
感谢这真的很有帮助
标签: node.js