首页 > 解决方案 > 从 Google Apps 脚本中的 Alpha Vantage API 中提取 JSON 值

问题描述

我正在尝试使用 Google Apps Script 和 Alpha Vantage API 来提取 JSON 值以最终放置在 Google 表格中。对于某些 Alpha Vantage API 端点,我无法提取我想要的值。

这是我要使用的 JSON 端点之一:

https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=IBM&apikey=demo

请注意,这只是他们的演示链接之一。

对于这个 API,我只想提取“价格”值。

{
"Global Quote": {
"01. symbol": "IBM",
"02. open": "128.9400",
"03. high": "130.9950",
"04. low": "127.7900",
"05. price": "130.0600",
"06. volume": "5835669",
"07. latest trading day": "2021-03-18",
"08. previous close": "129.0300",
"09. change": "1.0300",
"10. change percent": "0.7983%"
}
}

我想从中提取值的另一个 API:

https://www.alphavantage.co/query?function=BALANCE_SHEET&symbol=IBM&apikey=demo

我现在在 Google App Script 编辑器中拥有的是第一步(JS 新手),但不完全是从这里去哪里。在第一个 API 中命名对象的方式(例如“05.price”)让我大吃一惊,因为我认为我不能使用点符号来调用该值,因为它在 API 中的命名约定。(让我知道这是否不正确)。

function testAPI() {
  
  var api_url = "https://www.alphavantage.co/queryfunction=GLOBAL_QUOTE&symbol=IBM&apikey=demo";
  var json = UrlFetchApp.fetch(api_url);
  
  var obj = JSON.parse(json);
  
  Logger.log(obj);
}

对此工作流程的任何帮助表示赞赏。

标签: javascriptjsonapigoogle-apps-scriptalpha-vantage

解决方案


function testAPI() {
  var api_url = "https://www.alphavantage.co/queryfunction=GLOBAL_QUOTE&symbol=IBM&apikey=demo";
  var json = UrlFetchApp.fetch(api_url);
  var obj = JSON.parse(json);
  //I  assume everything above this is all correct if it's not that's your problem
  Logger.log(obj["Global Quote"]["05. price"]);
}

测试:

function testAPI() {
  //var api_url = "https://www.alphavantage.co/queryfunction=GLOBAL_QUOTE&symbol=IBM&apikey=demo";
  //var json = UrlFetchApp.fetch(api_url);
  var json = '{"Global Quote": {"01. symbol": "IBM","02. open": "128.9400","03. high": "130.9950","04. low": "127.7900","05. price": "130.0600","06. volume": "5835669","07. latest trading day": "2021-03-18","08. previous close": "129.0300","09. change": "1.0300","10. change percent": "0.7983%"}}';
  var obj = JSON.parse(json);
  Logger.log(obj["Global Quote"]["05. price"]);
}

推荐阅读