Вызов ключа: пара значений в скрипте Служб Google возвращает значение «Не определено» вместо значения - PullRequest
1 голос
/ 15 января 2020
var api_key_id = '1234567890'
function open(ticker, date) {
  ticker="TSLA";
  date="2019-01-14";
  var url = "https://api.polygon.io/v1/open-close/" + ticker + "/" + date + "?apiKey=" + api_key_id;
  var response = UrlFetchApp.fetch(url);
  var data = response.getContentText();
  Logger.log(data);
}

Когда приведенный выше код запускается, он регистрирует это:

{"status": "OK", "from": "2019-01-14T03: 30: 00Z", "symbol": "TSLA", "open": 342, "high": 343.3, "low": 335.37, "close": 338.93, "afterHours": 336.2148, "volume": 4425458}

Но когда я пытаюсь сделать это:

Logger.log(data.open);

Вывод:

undefined

Является ли переменная "data" не на самом деле объект? Чего мне не хватает?

РЕДАКТИРОВАТЬ: Решение найдено: Анализ результата getContentText (), так как JSON позволил вызвать нужную переменную, см. Ниже. Спасибо Чаксу за то, что указал на это!

var api_key_id = '1234567890'
function open(ticker, date) {
  var url = "https://api.polygon.io/v1/open-close/" + ticker + "/" + date + "?apiKey=" + api_key_id;
  var response = UrlFetchApp.fetch(url);
  var data = response.getContentText();
  var json = JSON.parse(data);
  Logger.log(json.open);

1 Ответ

0 голосов
/ 17 января 2020

HTTPResponse.getContextText() возвращает строку, поэтому она фактически не является объектом.

Поскольку этот API возвращает JSON, вы можете проанализировать строку, используя JSON.parse() и затем взаимодействуйте с возвращенным объектом так, как вы ожидаете.

...
var apiResponse= JSON.parse(response.getContentText());
Logger.log(apiResponse.open);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...