在 Google Apps Script 中从 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,我只想提取“价格”值。

tctx.someMock.On("addProd",mock.Anything).Return(nil,nil)

...

tctx.someMock.AssertCalled(t,"addProd",mock.MatchedBy(func(i interface{}) bool {
    p := i.(*product.AddProductParams)
    return p.ID() == "someid"
})).Return(nil,nil)

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

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

我现在在 Google App Script 编辑器中的内容是这方面的第一步(JS 新手),但不完全是从这里开始的步骤。在第一个 API 中命名对象的方式(例如“05.price”)让我失望,因为我不认为我可以使用点表示法来调用该值,因为它在 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%"
}
}

感谢您对此工作流程的任何帮助。

解决方法

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"]);
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...