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

使用JS导入API JSON数据至Google Sheets:如何拆分单个单元格内的数组到行列

问题解决方法

问题根源

Ozon的分类树接口返回的JSON数据包含嵌套数组/对象结构,你当前使用的代码仅提取了JSON第一层的键和对应值,遇到数组类型的值时会直接将整个数组对象写入单个单元格,不会自动拆分,这就是数组挤在同一个单元格的原因。
另外原代码存在参数配置错误:muteHttpExceptions是UrlFetchApp.fetch的顶层参数,不需要放到body中,且GET请求也不需要携带body配置。

修改后可用代码

直接替换你现有的pullJSON函数即可,代码会自动展开数组、嵌套对象到不同列,你也可以根据自己的需求调整遍历逻辑适配更深层级的嵌套结构:

function pullJSON() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var options = {
    method: "GET",
    "headers" : {
      "Client-Id": "XXX",
      "Api-Key": "XXX-XXX-XXX-XXX-XXX",
      "Content-Type": "application/json"
    },
    muteHttpExceptions: true
  }

  var url="https://api-seller.ozon.ru/v1/categories/tree";
  var response = UrlFetchApp.fetch(url, options);
  var dataAll = JSON.parse(response.getContentText());

  var rows = [];
  var headers = [];
  var values = [];

  // 遍历第一层JSON键值对,自动拆分数组、嵌套对象
  for (var key in dataAll) {
    var currentValue = dataAll[key];
    // 处理数组类型:拆分到多个带索引的列
    if (Array.isArray(currentValue)) {
      for (var i = 0; i < currentValue.length; i++) {
        headers.push(`${key}_${i+1}`);
        // 如果数组元素是对象,此处可修改为提取对象指定字段,当前默认转字符串写入
        values.push(typeof currentValue[i] === 'object' ? JSON.stringify(currentValue[i]) : currentValue[i]);
      }
    // 处理第一层嵌套对象:拆分对象属性为单独列
    } else if (typeof currentValue === 'object') {
      for (var objKey in currentValue) {
        headers.push(`${key}_${objKey}`);
        values.push(currentValue[objKey]);
      }
    // 普通值直接写入
    } else {
      headers.push(key);
      values.push(currentValue);
    }
  }

  rows.push(headers);
  rows.push(values);

  // 写入前清空原有内容避免残留
  sheet.clearContents();
  sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
}

如果你需要把数组元素按行拆分而非按列拆分,只需要调整遍历逻辑,把每个数组元素组装为单独的行对象写入即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:27:02