我使用Google Sheets API检索电子表格并通过它进行解析。我正在使用javascript并且我正在请求JSON(REST API的文档实际上在旧的Google Data API文档中 - 非常烦人!)。
以下是我用于GET
数据的网址,其中ID
是电子表格的ID:
https://spreadsheets.google.com/feeds/cells/"+ID+"/1/public/values?alt=json
这将获得第一个工作表的每个单元格,但是,所有单元格都列在一个数组中。
feed: {
entry: [
0: {
gs$cell: {
row: 1,
col: 1,
$t: 'Value'
}
},
1: {
gs$cell: {
row: 2,
col: 1,
$t: 'Other Value'
}
}
]
}
这意味着我必须使用for循环遍历数组(data.feed.entry
),使用data.feed.entry[i].gs$cell.row
检查它在哪一行,然后将每个单元格排序为每行的数组。这似乎是为了格式化JSON对象以供使用而做的额外工作。
我只是想知道为什么Google会像这样构建他们的JSON对象。他们为什么不按行对细胞进行分组呢?我觉得我错过了什么。
然后我想也许使用list
而不是cells
更好地获取整行,但是当我这样做时,列是由它们的值定义的,这意味着内容可以& #39;是动态的。在解析数据之前,您必须知道标头值...
feed: {
entry: [
0: {
gsx$MyColumnValue: {
row: 1,
col: 1,
$t: 'Value'
}
},
1: {
gsx$MyOtherColumnValue: {
row: 2,
col: 1,
$t: 'Other Value'
}
}
]
}
同样,我不知道为什么Google会以这种方式构建他们的JSON。你知道为什么吗?我错过了什么?
答案 0 :(得分:0)
FWIW(为了后代),您可以将cells
更改为list
,以获得基于行的响应。
例如https://spreadsheets.google.com/feeds/list/SPREADSHEET-ID/1/public/values?alt=json