Я бился головой об стену с этой проблемой большую часть прошлого дня, поэтому я бросаю это туда в надежде, что какая-то добрая душа сможет пролить мне свет.
Итак, у меня есть приложение Angular 7, которое отправляет запрос GET на API AlphaVantage.У меня есть интерфейс, который моделирует ответ JSON от API, и я могу использовать возвращаемые значения.Проблема в том, что ключи для этого объекта ответа JSON основаны на датах, поэтому я не могу заранее знать, какими будут ключи, поскольку они будут меняться со временем.
Я пытался перебрать объект с помощью цикла безрезультатно.
Ниже приведен пример того, как выглядит мой интерфейс
export interface SMA {
'Meta Data': {
'1: Symbol',
'2: Indicator',
'3: Last Refreshed',
...
};
'Technical Analysis: SMA' : {
'2018-12-27': { 'SMA' },
'2018-12-21': { 'SMA' },
...
};
}
А вот выдержка из ответа JSON от alpha vantage
{
"Meta Data": {
"1: Symbol": "MSFT",
"2: Indicator": "Simple Moving Average (SMA)",
"3: Last Refreshed": "2018-12-27",
"4: Interval": "weekly",
"5: Time Period": 10,
"6: Series Type": "open",
"7: Time Zone": "US/Eastern"
},
"Technical Analysis: SMA": {
"2018-12-27": {
"SMA": "106.7165"
},
"2018-12-21": {
"SMA": "107.8395"
},
"2018-12-14": {
"SMA": "108.4645"
},
....
А вот какВ настоящее время я могу получить доступ к значениям.sma является наблюдаемой SMA, поэтому я могу получить доступ к таким значениям, как
this.http.get<SMA>(this.uri)
.subscribe( data => {
symbol = data["Meta Data"]["1: Symbol"];
value = data["Technical Analysis: SMA"]["2018-12-27"]["SMA"];
});
Так что я могу напрямую получить доступ к этим значениям по имени, но есть ли способ для меня получить доступ к этим значениямв порядке, не зная ключей заранее?В идеале это приложение сможет быть в курсе ответов API, и я никак не могу сделать это путем прямого доступа через именованные параметры.Извините, если это полный вопрос о нубе, я не очень долго работал над интерфейсом, и это мой первый опыт работы с RESTful apis.