You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google API写入Google表格时出现400错误的排查求助

排查Google Sheets API写入数据的400错误

我来帮你定位这个Invalid JSON payload错误的原因,核心问题出在数据结构与目标单元格范围不匹配,结合你的代码具体分析:

核心问题:数据维度和指定范围不兼容

你代码里指定的写入范围是Sheet1!A1:A4,这代表4行1列的单元格区域;但你准备的values是[ ['value1','value2','value3'] ],这是1行3列的数据。Google Sheets API会因为数据的行列数和目标范围不匹配,判定为无效的JSON payload,从而抛出400错误。

修正方案(二选一即可)

根据你的实际需求调整数据或范围:

  • 如果你想把3个值写入同一行的A1:C1:
    修改range为Sheet1!A1:C1,保持values不变,代码如下:
    var values = [ [ 'value1','value2','value3' ] ];
    var body = { values: values };
    gapi.client.sheets.spreadsheets.values.update({
      spreadsheetId: '1Lofhq9R7X5wzGvO7fMViN8D8q1W3fiNxO5jjP7XL_s0',
      range: 'Sheet1!A1:C1', // 调整为1行3列的范围
      valueInputOption:'RAW',
      resource: body
    }).then((response) => {
      var result = response.result;
      console.log(`${result.updatedCells} cells updated.`);
    });
    
  • 如果你想把3个值写入A1:A3(纵向排列):
    修改values为每行一个值的二维数组,保持range为Sheet1!A1:A3(对应3行1列),代码如下:
    var values = [ ['value1'], ['value2'], ['value3'] ]; // 调整为3行1列的数据
    var body = { values: values };
    gapi.client.sheets.spreadsheets.values.update({
      spreadsheetId: '1Lofhq9R7X5wzGvO7fMViN8D8q1W3fiNxO5jjP7XL_s0',
      range: 'Sheet1!A1:A3', // 匹配数据的3行1列范围
      valueInputOption:'RAW',
      resource: body
    }).then((response) => {
      var result = response.result;
      console.log(`${result.updatedCells} cells updated.`);
    });
    

额外检查项

如果调整后仍有错误,可以排查这两点:

  • 确认spreadsheetId完全正确,没有多余的空格或字符;
  • 确保代码中的引号、括号都是英文半角符号,中文符号会导致JSON解析失败。

内容的提问来源于stack exchange,提问作者Jasmine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:58:31