使用Javascript获取API访问JSON输出中的第一项

使用Javascript获取API访问JSON输出中的第一项,javascript,json,Javascript,Json,我正在尝试从中检索最新的条目。我试图检索的数据是最新的条目,下面是一个示例(上面的链接显示了整个json) 显然,我可以通过引用 ['2018-11-21 16:00:00'] 使用方括号表示法和类似方法 ['4.关闭'] 为了检索我需要的数据,但鉴于最新条目不断切换日期和时间,引用总是在更改 如何确保总是检索最新的值?您可以使用Object.keys。它将给出一个数组,然后使用索引(这里是0)获取第一个元素 让obj={ “时间序列(5分钟)”:{ "2018-11-21 16:00:0

我正在尝试从中检索最新的条目。我试图检索的数据是最新的条目,下面是一个示例(上面的链接显示了整个json)

显然,我可以通过引用

['2018-11-21 16:00:00']

使用方括号表示法和类似方法

['4.关闭']

为了检索我需要的数据,但鉴于最新条目不断切换日期和时间,引用总是在更改


如何确保总是检索最新的值?

您可以使用
Object.keys
。它将给出一个数组,然后使用索引(这里是0)获取第一个元素

让obj={
“时间序列(5分钟)”:{
"2018-11-21 16:00:00": {
“1.打开”:“103.3300”,
“2.高”:“103.4300”,
“3.低”:“103.0800”,
“4.关闭”:“103.0800”,
“5.卷”:“1430557”
},
}
}
让getKeys=Object.keys(obj[‘时间序列(5min)’)[0];
让getVal=obj[‘时间序列(5分钟)’][getKeys];

console.log(getVal)
您无法保证对象的顺序,因此我认为这是不可能的。

您可以使用方法将
时间序列(5分钟)
对象转换为数组。然后访问数组的第一个索引以获取最新条目

下面是如何使用fetchapi获取最新条目

consturl='1〕https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=5min&apikey=demo';
获取(url)
.then(response=>response.json())
。然后(数据=>{
const obj=数据['时间序列(5分钟)';
常量arr=对象值(obj);
常数latestEntry=arr[0];
控制台日志(最新版本);
})

.catch(错误=>console.log(错误))您只需将键转换为日期,然后按降序对键进行排序。然后选择第一个。下面是一个片段:

[即使最初获取密钥时未对密钥进行排序,此操作也有效]

var obj={
“时间序列(5分钟)”:{
"2018-11-21 16:00:00": {
“1.打开”:“103.3300”,
“2.高”:“103.4300”,
“3.低”:“103.0800”,
“4.关闭”:“103.0800”,
“5.卷”:“1430557”
},
"2018-11-21 16:00:20": {
“1.打开”:“104.3300”,
“2.高”:“104.4300”,
“3.低”:“104.0800”,
“4.关闭”:“104.0800”,
“5.卷”:“1430557”
},
}
}
var keys=Object.keys(obj[‘时间序列(5min)’);
//现在按降序排列日期
键。排序(功能(a、b){
a=新日期(a);
b=新日期(b);

返回a>b?-1:a对象中的迭代顺序取决于实现。因此,恐怕您无法确保通过与对象相关的方法检索最新值。
"Time Series (5min)": {
        "2018-11-21 16:00:00": {
            "1. open": "103.3300",
            "2. high": "103.4300",
            "3. low": "103.0800",
            "4. close": "103.0800",
            "5. volume": "1430557"
        },