Как получить открытие и закрытие из этого запроса JSON

Существует API под названием Alpha Vantage, который получает данные о запасах в реальном времени. Делая запрос, он возвращает JSON. Это отличается от всего, что я видел, поскольку этого нет в массиве. Я не могу осмыслить это. Я использую JQuery и Javascript и хочу сохранить значения в массиве, чтобы потом их можно было прочитать.

Вот формат JSON. (Полный JSON) https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo

А вот образец этих данных:

{
"Meta Data": {
    "1. Information": "Intraday (1min) prices and volumes",
    "2. Symbol": "MSFT",
    "3. Last Refreshed": "2017-10-06 16:00:00",
    "4. Interval": "1min",
    "5. Output Size": "Compact",
    "6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
    "2017-10-06 16:00:00": {
        "1. open": "75.9700",
        "2. high": "76.0000",
        "3. low": "75.9500",
        "4. close": "76.0000",
        "5. volume": "2277972"
    },
    "2017-10-06 15:59:00": {
        "1. open": "75.9700",
        "2. high": "75.9700",
        "3. low": "75.9500",
        "4. close": "75.9650",
        "5. volume": "142469"
    },
    "2017-10-06 15:58:00": {
        "1. open": "75.9700",
        "2. high": "75.9900",
        "3. low": "75.9500",
        "4. close": "75.9600",
        "5. volume": "141434"
    },

И так продолжается до конца.

Благодарим за любую помощь в переносе этих данных в массив, поскольку я застрял в этой части моего проекта.


person Community    schedule 09.10.2017    source источник
comment
Как вы хотите, чтобы массив выглядел? что ты уже испробовал?   -  person laruiss    schedule 09.10.2017
comment
Это один ГИГАНТНЫЙ объект, а не массив, относитесь к нему так;) Какие значения вам нужны из него и зачем вам преобразовывать его в массив. Вы можете работать с объектом даже лучше, чем с массивом, только не с теми же функциями.   -  person DanteTheSmith    schedule 09.10.2017
comment
это вопрос php?   -  person YvesLeBorg    schedule 09.10.2017
comment
@laruiss Я просто хочу получить цены открытия и закрытия, чтобы использовать их позже.   -  person    schedule 09.10.2017
comment
@YvesLeBorg Я не против использовать php или javascript   -  person    schedule 09.10.2017
comment
@DanteTheSmith Хорошо, если лучше лечить это так, я бы предпочел пойти с этим. Я хочу попытаться получить цены открытия и закрытия акции   -  person    schedule 09.10.2017


Ответы (2)


Вы можете использовать приведенный ниже код

function traverse(jsonObj) {
if( typeof jsonObj == "object" ) {
    for (var prop in jsonObj){
        // k is either an array index or object key
        console.log(jsonObj[prop]);
        traverse(prop);
    }
}
else {
    // jsonOb is a number or string
}

}
traverse(data["Time Series (1min)"]);

fgfg

person Ferhat BAŞ    schedule 09.10.2017

Попробуйте код ниже

КОД JS

storeToarray();
function storeToarray(){
  let ItemArray = [];
  if(Object.keys(data).length > 1){
  var keus = Object.keys(data)[1];
    for(var i = 0; i < Object.keys(data[keus]).length; i++){
      var keusVal = Object.keys(data[keus])[i];
      var open = Object.keys(data[keus][keusVal])[0];
      var close = Object.keys(data[keus][keusVal])[1];
      var low = Object.keys(data[keus][keusVal])[2];
      var volume = Object.keys(data[keus][keusVal])[3];
      var high = Object.keys(data[keus][keusVal])[4];

     ItemArray.push({"open":data[keus][keusVal][open],"high" :data[keus][keusVal][high] ,"low" : data[keus][keusVal][low],"close":data[keus][keusVal][close],"volume":data[keus][keusVal][volume]})
    }
  }
  console.log(ItemArray);
}

Нажмите здесь, чтобы увидеть демонстрацию JsFiddle

person Gohel Dhaval    schedule 09.10.2017