首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用键: Google脚本中的值对正在返回“未定义”,而不是返回值

调用键: Google脚本中的值对正在返回“未定义”,而不是返回值
EN

Stack Overflow用户
提问于 2020-01-15 17:54:32
回答 1查看 306关注 0票数 1
代码语言:javascript
复制
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);
}

当运行上面的代码时,它会记录如下:

{“状态”:“确定”,“从”:“2019-01-14T03:30:00Z”,“符号”:“TSLA”,“打开”:342,“高”:343.3,“低”:335.37,“关闭”:338.93,"afterHours":336.2148,“卷”:4425458}

但当我尝试这样做时:

代码语言:javascript
复制
Logger.log(data.open);

产出如下:

未定义

“数据”变量实际上不是一个对象吗?我遗漏了什么?

编辑:解决方案发现:将getContentText()的结果解析为JSON,允许调用所需的变量,请参见下面的内容。感谢咯咯指出这一点!

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-16 21:55:18

HTTPResponse.getContextText()返回一个字符串,因此它实际上不是一个对象。

因为这个API返回JSON,所以您可以使用JSON.parse()解析字符串,然后以预期的方式与返回的对象交互。

代码语言:javascript
复制
...
var apiResponse= JSON.parse(response.getContentText());
Logger.log(apiResponse.open);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59757082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档