使用API​​

时间:2017-12-31 06:33:49

标签: javascript json google-sheets

我花了大约5个小时试图解决这个问题,并且最后一点陷入困境。

到目前为止,我已经能够调用https://sunrise-sunset.org/api来返回我需要的所有数据。我遇到的问题是能够解析结果,以便将日出或日落值附加到我可以在google工作表中导出的变量。

理想情况下,在google工作表中,我可以像其他任何一样使用自定义功能

A1=SunRiseSet(lat,long,date,type)  

=“5:11:12 PM”

我想使用type来指定函数应返回的值(日出或日落)。

这是我到目前为止的代码

function SunRiseSet(lat,long,date,type) {
 var response = UrlFetchApp.fetch("https://api.sunrise-sunset.org/json?lat="+lat+"&lng="+long+"&date="+date);  
  var json = response.getContentText();
  Logger.log(json);

  var data = JSON.stringify(json);
  Logger.log(data);
  var data = json;

  var sunrise = data.sunrise;

  var sunset = data.results.sunset

 type=1; 
  if(type==1){
   return this.sunrise}
  else{
   return this.sunset};
}

我确信这很容易,但到目前为止,我所尝试的一切都失败了。非常感谢你!

1 个答案:

答案 0 :(得分:1)

以下修改如何?

修改要点:

  • sunrise的值为data.results.sunrise
  • 可以使用data.results.sunrise进行解析来检索
  • data.results.sunsetJSON.parse()

上面反映的修改后的脚本如下。

修改后的脚本:

function SunRiseSet(lat,long,date,type) {
  var response = UrlFetchApp.fetch("https://api.sunrise-sunset.org/json?lat="+lat+"&lng="+long+"&date="+date);
  var json = response.getContentText();
  var data = JSON.parse(json);
  var sunrise = data.results.sunrise;
  var sunset = data.results.sunset;
  if (type == 1) {
    return sunrise;
  } else {
    return sunset;
  };
}

用法:

  • 请将=SunRiseSet(lat,long,date,type)放在电子表格上的单元格中。

例如,

  • 何时需要sunrise
    • 请将=SunRiseSet(36.7201600,-4.4203400,"2017-12-31",1)放入电子表格上的单元格。请用双引号括起date
  • 何时需要sunset
    • 请将=SunRiseSet(36.7201600,-4.4203400,"2017-12-31")放入电子表格上的单元格。除1type外,您可以使用。您也可以像样本一样使用type

这些参数来自Sunset and sunrise times API

参考文献:

如果我误解了你的问题,请告诉我。我想修改。