SyntaxError:Google Apps脚本中对象文字中的意外标记

时间:2014-03-31 17:18:17

标签: javascript google-apps-script

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

  

SyntaxError:对象文字中的意外标记

它是我用来从缓存中获取标签的函数的一部分。如果我从头开始重新加载我的脚本而不做任何不同的事情,它将正常工作。然后由于某种原因,我找不到任何触发器,它将停止在labels = JSON.parse(labels);行工作。我最好的猜测是缓存有超时,但是当我记录标签变量时,我没有得到任何两者之间的差异(我发现了)。

P.S。我也愿意采用其他方法来轻松拉动标签。

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

1 个答案:

答案 0 :(得分:0)

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

  

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

意味着您正在尝试JSON解析javascript对象文字;也就是说,您不需要执行JSON.parse()。您可以执行console.log(labels);来了解对象的外观。唯一要注意的是,要使其正常运行,您需要确保您的appscript项目在GCP项目下并且不受appscript仪表板的管理。