从谷歌电子表格中的特定细胞范围获取json数据

时间:2017-01-17 13:07:02

标签: javascript json google-sheets google-sheets-api

我试图找到一种方法从google docs表格中的特定范围的单元格中获取json数据。

我的看起来像这样 this article

我想获得一个JSON对象,如下所示

{ 
 "Parts":{"target1": 230000, "target2":200000},
 "Accessories":{"target1": 150000, "target2":100000},
 "Stars":{"target1": 95, "target2":70},
 "Labour":{"target1": 900, "target2":750},
}

我已经阅读了documentation,并试图让它适应我的需要,但我这样做的实验都被严重破坏了。我要么在我的json中输入大量不需要的元数据,要么根本没有。我怀疑这篇文章已经过时了,已经超过5年了。

有人可以提出不同的方法吗?

1 个答案:

答案 0 :(得分:1)

正如您所观察到的,Google表格API总是返回加载了比实际内容更多元数据的JSON。要以您想要的方式转换表,您需要一个脚本。这是一个可以在工作表中用作自定义函数的脚本:输入=tableJSON(A2:E4)将返回所需表单的字符串。

function tableJSON(arr) {
  var i, j, obj = {};
  for (j = 1; j < arr[0].length; j++) {
    obj[arr[0][j]] = {};
  }
  for (i = 1; i < arr.length; i++) {
    for (j = 1; j < arr[0].length; j++) {
      obj[arr[0][j]][arr[i][0]] = arr[i][j];
    }
  }
  return JSON.stringify(obj);
}