【问题标题】:The coordinates or dimensions of the range are invalid in JSon范围的坐标或尺寸在 JSON 中无效
【发布时间】:2016-10-09 19:28:08
【问题描述】:

我正在研究可以调用 REST API 并在 google 电子表格中获取数据的 google 脚本。但是不同的 Json 对象可以工作,而我现在使用的对象不起作用......

起初它给了我一个错误,因为范围的坐标或尺寸无效。所以看着 "The coordinates or dimensions of the range are invalid" - Google Apps Script and JSON Data

现在结果是undefined..

如果有人能提供帮助真的很感激

function pullJSON(k) {

     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheets = ss.getSheets();
     var sheet = ss.getActiveSheet();

     var url = "********"; // Paste your JSON URL here
     var headers = {
         "Content-Type": "application/json",

     };

     var options = {
         "method": "GET",
         "headers": headers
     };

     var response = UrlFetchApp.fetch(url, options); // get feed
     var dataAll = JSON.parse(response.getContentText()); //
     var dataSet = dataAll;
     Logger.log(dataAll.length);
     Logger.log(k);
     Logger.log(url);

     var rows = [],
         data;
     for (var k = 0; k < Object.keys(dataSet).length; k++) {
         data = [Object.keys(dataSet)[k]];
         Logger.log(data);

         rows.push([data.total1]);} //your JSON entities here

    dataRange = sheet.getRange( 1, 1,rows.length,1); // 3 Denotes total number of entites
    dataRange.setValues(rows);
 }

【问题讨论】:

  • 你能发一个你的dataSet的例子吗?

标签: json api google-apps-script


【解决方案1】:

你现在正在做的是在dataSet上调用Object.keys()
这将返回一个字符串数组,例如["status", "data"]

然后您分别检索这些键中的每一个并将它们作为一个元素数组分配给数据,因此数据看起来像 ["status"]["data"]
由于["total1]" 是一个字符串数组,它没有"total1" 属性,只是一个值等于名称的元素。

要从数据中的每个对象获取实际的总 1 值,您可以

dataSet.data.forEach(function(x) {
  rows.push([x.total1]);
});

而不是 for 循环。

【讨论】:

  • 我收到一个错误,因为 --Cannot convert Array to Object[][] ,使用此代码后 'rows.push(dataSet[[data.total1]])' 这是我的 Json 数据集. '{“状态”:“成功”,“数据”:[{“*****@gmail.com”:{},“电子邮件”:“*****@gmail.com”,“total1” : *****, "date1": "*****" }, { "*****2@gmail.com": {}, "email": "*****2@gmail .com", "total1": *****, "date1": "*****", "total2": *****, "date2": "*****" },'
  • 请检查我更新的答案,这应该适用于您描述的结构。
  • 还是同样的错误无法将数组转换为对象[][]。 (第 40 行,文件...)。
  • 对不起,你当然还需要push一个数组,我更新了答案
  • 太棒了!如果对您有帮助,请考虑接受答案。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多