【问题标题】:Assigning JSON object to variable from google sheets URL?从谷歌表格 URL 将 JSON 对象分配给变量?
【发布时间】:2014-10-02 09:13:05
【问题描述】:

我希望能够每 24 小时从谷歌电子表格文档中提取数据并使用我的 html 页面中的值。

我已设法获取我要跟踪的单元格的 JSON url,但我不知道如何使用该 url 将此 JSON 对象放入 javascript 变量中。

我已经四处搜索并尝试使用 Jquery $.get() 和 $.getJSON() 但我似乎无法得到任何工作。

Google 电子表格数据单元格 JSON 的 url 是

https://spreadsheets.google.com/feeds/cells/1r56MJc7DVUVSkQ-cYdonqdSGXh5x8nRum4dIGMN89j0/1/public/values/R29C4?alt=json-in-script&callback=importGSS

我知道这可能很简单,但我对使用 JSON/Javascript 非常陌生,并且一直在努力解决这个问题。

感谢您的帮助:)

【问题讨论】:

    标签: javascript jquery json google-apps-script


    【解决方案1】:

    返回的数据是jsonp,因此您需要在 Ajax 请求中指定。

    function getData() {
        return $.ajax({
            url: 'https://spreadsheets.google.com/feeds/cells/1r56MJc7DVUVSkQ-cYdonqdSGXh5x8nRum4dIGMN89j0/1/public/values/R29C4?alt=json-in-script&callback=importGSS',
            dataType: 'jsonp',
            jsonpCallback: 'importGSS'
        })
    }
    

    虽然您可以将数据分配给一个全局变量,但这只会让您到目前为止 - Ajax 进程是异步的,您将无法访问数据,直到进程已完成:

    var obj;
    getData().done(function (data) {
      obj = data;
    });
    
    // console.log(obj) here will return undefined as the process
    // has not yet finished
    

    更好地获取数据并对其进行处理:

    function doSomethingWithData(data) {
      console.log(data);
    }
    
    getData().done(function (data) {
      doSomethingWithData(data);
    });
    

    甚至更简单:

    getData().done(doSomethingWithData);
    

    【讨论】:

    • 你先生是救命恩人!
    • 现在我从单元格中获得了我想要的值,将这个值放入 HTML 中的 div 以便它每小时自动刷新的最佳方法是什么?我试图使用 .append() 但我不知道如何使电子表格中的值保持最新
    • 你应该为此提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多