получение веб-API с Axios - PullRequest
       1

получение веб-API с Axios

0 голосов
/ 19 октября 2018

Как получить "высокую" и "низкую" цену из следующих веб-API, используя AXIOS.Здесь вы найдете следующий код, но, очевидно, мне нужно изменить, чтобы он работал правильно для всех дат.

axios.get('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=TUVR')
.then(response => {
  console.log(response.data['Time Series (Daily)']['2018-10-18']['2. high']);
  console.log(response.data['Time Series (Daily)']['2018-10-18']['3. low']);

})
.catch(error => {
  console.log(error);
});

образец исходных данных, которые я пытаюсь извлечь

{
  "Meta Data": {
    "1. Information": "Weekly Prices (open, high, low, close) and Volumes",
      "2. Symbol": "MSFT",
        "3. Last Refreshed": "2018-10-18",
          "4. Time Zone": "US/Eastern"
  },
  "Weekly Time Series": {
    "2018-10-18": {
      "1. open": "108.9100",
        "2. high": "111.8100",
          "3. low": "106.9468",
            "4. close": "108.5000",
              "5. volume": "122020154"
    },
    "2018-10-12": {
      "1. open": "111.6600",
        "2. high": "113.0800",
          "3. low": "104.2000",
            "4. close": "109.5700",
              "5. volume": "228861873"
    },
    "2018-10-05": {
      "1. open": "114.7500",
        "2. high": "116.1800",
          "3. low": "110.6400",
            "4. close": "112.1300",
              "5. volume": "120208912"
    },
    "2018-09-28": {
      "1. open": "113.0300",
        "2. high": "115.1000",
          "3. low": "112.2175",
            "4. close": "114.3700",
              "5. volume": "110093609"
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

В JS присвойте свои данные некоторой переменной, скажем «myData», и попробуйте это:

function getHighAndLow(){

  var myData = {your example data};

  var weeklyTimeSeries = myData["Weekly Time Series"];
  var series = [];

  for (var i in weeklyTimeSeries) {
      series.push(weeklyTimeSeries[i]);
  }

  var high = series.map(function (a) { return a["2. high"] });

  var low = series.map(function (a) { return a["3. low"] });
}

Надеюсь, это поможет:)

0 голосов
/ 19 октября 2018

Я не добавил обертку axios, но вы, вероятно, можете довольно легко перевести ее из обычного fetch:

fetch('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=TUVR')
  .then(resp => resp.json())
  .then(response => {
    const highLow = Object.keys(response['Time Series (Daily)']).map(date => {
      return {
        date,
        high: response['Time Series (Daily)'][date]['2. high'],
        low: response['Time Series (Daily)'][date]['3. low']
      }
    })
    console.log(highLow);
  })
  .catch(error => {
    console.log(error);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...