SyntaxError:Google Apps脚本中的对象文字中存在意外的令牌

Bjo*_*ndt 5 javascript google-apps-script

我无法弄清楚为什么会向我抛出此错误,因为它是随机的:

SyntaxError:对象文字中的意外令牌

它是我用来从缓存中获取标签的功能的一部分。如果我从头开始重新加载脚本而不做任何其他操作,它将可以正常工作。然后由于某种原因,我无法为其找到任何触发器,它将停止在该行上工作。labels = JSON.parse(labels); 我最好的猜测是缓存上存在超时,但是当我记录标签变量时,两者之间没有任何区别(我发现)。

ps我也愿意采用其他方法轻松完成标签的粘贴。

var labels = function() {
    var labels = CacheService.getPrivateCache().get('labels');
    if (!labels) {
        labels = PropertiesService.getDocumentProperties().getProperty('labels');
        CacheService.getPrivateCache().put('labels', labels, 660);
    }
    if (labels) {
        labels = JSON.parse(labels);

    } else {
        // Something went wrong
        Browser.msgBox("Something went wrong, please reinstall")
    }
    return labels;
}

function testcache() {
    // var labels = this.labels();
    var dropBoxLabels = this.labels().dropBoxes;
    var dropBoxLabel = this.labels().dropBox;
    var periodLabel = this.labels().period;
    var editLabel = this.labels().edit;
    var viewLabel = this.labels().view;
    var teacherLabel = this.labels().teacher;
    Logger.log("");
}
Run Code Online (Sandbox Code Playgroud)

Mor*_*smo 0

如果这是触发器的一部分,则很可能该变量labels以某种方式被分配了触发器数据。错误:

语法错误:对象文字中出现意外标记

意味着您正在尝试使用 JSON 解析 javascript 对象文字;即,您不需要执行JSON.parse(). 您可以做的是console.log(labels);了解该对象的外观。唯一的事情是,要使其发挥作用,您需要确保您的 appscript 项目位于 GCP 项目下,并且不受 appscript 仪表板管理。