将JSON对象分配给google工作表URL中的变量

Assigning JSON object to variable from google sheets URL?

本文关键字:URL 变量 工作 google JSON 对象 分配      更新时间:2023-09-26

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

我已经设法获得了我想要跟踪的单元格的JSON url,但我不知道如何使用url将这个JSON对象获取到javascript变量中。

我四处搜索并尝试使用Jquery$.get()和$.getJSON(),但似乎什么都做不到。

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

https://spreadsheets.google.com/feeds/cells/1r56MJc7DVUVSkQ-cYdonqdSGXh5x8nRum4dIGMN89j0/1/public/values/R29C4?alt=json-在脚本&callback=导入GSS

我知道这可能很简单,但我是JSON/Javascript的新手,一直在努力解决这个问题。

感谢您的帮助:)

返回的数据是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);