我已经花了大约5个小时试图弄清楚这一点,并在最后一点卡住了。
到目前为止,我已经能够调用https://sunrise-sunset.org/api来返回我需要的所有数据,但我遇到的问题是如何解析结果,以便它将sunise或sunset值附加到一个变量上,然后我可以将其作为结果导出到google sheet中。
理想情况下,在google工作表中,我可以像这样使用自定义函数
A1=SunRiseSet(lat,long,date,type)
="下午5时11分12秒"
我想使用type来指定函数应该返回什么值(sunrise或sunset)。
下面是我目前拥有的代码
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条答案
按热度按时间wfveoks01#
下面的修改怎么样?
修改点:
sunrise
的值在data.results.sunrise
处。data.results.sunrise
和data.results.sunset
可以通过使用JSON.parse()
进行解析来检索。上面反映的修改后的脚本如下所示。
修改脚本:
用法:
=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")
放入电子表格的单元格中。除了1
到type
之外,您可以使用。您也可以像示例一样不使用type
。这些参数来自Sunset and sunrise times API。
参考文献:
如果我误解了你的问题,请告诉我,我想修改一下。