Я хотел бы получить данные фондового рынка из этот API и сохранить их в переменной. Мне понадобится цикл для получения цен на каждый день/вход, но это позже. Массив биржевых данных содержит предложения в части ключ объекта key:value, например:
"Time Series (Daily)": {
"2022-05-06": {
"1. open": "135.4700",
"2. high": "137.9900",
"3. low": "135.4700",
"4. close": "137.6700",
"5. volume": "7306396"
},
}
Как я могу нацелить ключ 1. open внутри Time Series (Daily)?
Это пока все, что у меня есть.
var baseUrl = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=JX0BM5MCRRDMZBSE`;
let chartXValues = []; // Date
let chartYValues = []; //Stock Price
useEffect(() => {
axios.get(baseUrl).then(res => {
setChart(res);
console.info(chart);
});
}, [baseUrl]);
chart['Time Series (Daily)']['2022-05-06']


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете сделать следующее, чтобы извлечь все значения «1. open» из данных «Time Series (Daily)».
const response = {
"Meta Data": {
"1. Information": "Daily Prices (open, high, low, close) and Volumes",
"2. Symbol": "IBM",
"3. Last Refreshed": "2022-05-06",
"4. Output Size": "Compact",
"5. Time Zone": "US/Eastern"
},
"Time Series (Daily)": {
"2022-05-06": {
"1. open": "135.4700",
"2. high": "137.9900",
"3. low": "135.4700",
"4. close": "137.6700",
"5. volume": "7306396"
},
"2022-05-05": {
"1. open": "136.4600",
"2. high": "137.2600",
"3. low": "134.7600",
"4. close": "135.9200",
"5. volume": "5957434"
},
"2022-05-04": {
"1. open": "132.8700",
"2. high": "137.8700",
"3. low": "132.1400",
"4. close": "137.4000",
"5. volume": "5913705"
},
}
}
const openTs = Object.values(response["Time Series (Daily)"]).map(ts => ts["1. open"]);
С помощью Object.keys(obj) вы можете получить список неизвестных ключей. С помощью этого ключа вы можете получить свойства объекта.
приведенный ниже фрагмент может вам помочь.
import React, { useState, useEffect } from 'react';
import axios from 'axios';
function App(props) {
var baseUrl = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=JX0BM5MCRRDMZBSE`;
let chartXValues = []; // Date
let chartYValues = []; //Stock Price
const [chart, setChart] = useState();
useEffect(() => {
axios.get(baseUrl).then(res => {
setChart(res.data);
console.info(res.data);
});
}, [baseUrl]);
useEffect(()=>{}, [chart]);
return (
<div>
{ chart &&
Object.keys(chart['Time Series (Daily)']).map((k, i1) => {
return (<div key = {i1}>
<h3>{k}</h3>
{
Object.keys(chart['Time Series (Daily)'][k]).map((l, i2) => {
return (<div key = {i2}>{chart['Time Series (Daily)'][k][l]}</div>)
})
}
</div>)
})
}
</div>
);
}
export default App;
вау ? спасибо - очень помогло! Object.keys(obj) был именно тем, что мне было нужно. Большое спасибо. ?
Прежде всего, скройте свой
api keyиз URL.