如何解决JSON.stringify 将数组中的所有对象打印为 [{},{},{}]
当我运行此代码时,我得到以下输出:
var triggers = ScriptApp.getProjectTriggers();
Logger.log("triggers =" + JSON.stringify(triggers));
for (var j = 0; j < triggers.length; j++) {
Logger.log("trigger +"[i]+" =" + JSON.stringify(triggers[i]));
}
};
输出:
5:55:16 PM Info triggers =[{},{},{}]
5:55:16 PM Info t ={}
我知道有一些非空对象,为什么它们不显示为字符串?
解决方法
来自 ScriptApp.getProjectTriggers()
的返回值是一个 array of Trigger objects - 这些对象似乎没有 toJSON
方法或可以字符串化的值。
有关更多背景信息,请参阅此问题 Why does JSON.stringify return empty object notation “{}” for an object that seems to have properties?。
我假设您有一个包含三个触发器对象的数组,根据您的输出 [{},{},{}]
判断。
您可以遍历数组以访问其属性 - 例如,如下所示:
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
Logger.log( triggers[i].getEventType() );
}
假设您的脚本附加了 1 个基于时间的触发器和 1 个日历事件触发器,您将看到以下输出:
3:54:07 PM Info CLOCK
3:54:07 PM Info ON_EVENT_UPDATED
更紧凑的迭代方式是:
var triggers = ScriptApp.getProjectTriggers();
triggers.forEach(trigger => Logger.log( trigger.getEventType() ));
有关您可以为每个触发器访问哪些属性的更多详细信息,请参阅文档 here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。