как получить из файла api?

#javascript #json #ajax

#javascript #json #ajax

Вопрос:

у меня есть один api . мои данные в моем коде имеют 2 раздела

 "Meta Data": {…}
"Time Series (Daily)": {…}
  

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

 $.ajax({
    url: urls,        
    dataType: 'json',
    contentType: "application/json",
    success: function (data) {
        debugger;
        // split the data set into ohlc and volume
        var ohlc = [],
          volume = [],

          dataLength = data.length, // but this code is undefiend
  

как я могу получить значения «Временных рядов (ежедневно)»?
спасибо за прочтение майского решения

Комментарии:

1. предполагая, что и «Метаданные», и «Временные ряды (ежедневно)» являются ключами в возвращаемом объекте, попробуйте console.log(data['Time Series (Daily)']) и посмотрите, те ли это данные, которые вы ожидаете. В противном случае обычно предпочтительнее нормализовать имена с помощью змеиной или верблюжьей оболочки.

2. да, я могу видеть значения по console.log(data[‘Временные ряды (ежедневно)’]), но я не могу использовать data[‘Временные ряды (ежедневно)’].length

3. Потому что вы тоже показываете его как объект, а не как массив. Объектные литералы не имеют длины

Ответ №1:

Учитывая состояние данных, которые вы нам предоставили, правильный способ получить данные из конечной точки API здесь — иметь

 $.ajax({
      url: urls,
      dataType: 'json',
      contentType: "application/json",
      success: function(data) {
        debugger;
        // split the data set into ohlc and volume
        var ohlc = [],
          volume = [],

          dataLength = data['Time Series (Daily)'].length,
          // rest of variable definitions
      });  

Я бы рекомендовал, однако, чтобы вы уделили время либо snake case ( some_property_here ), либо camel case ( somePropertyHere ), чтобы вам не приходилось использовать data['string with spaces syntax']