如何用Google Apps Script提取JSON单个字段至Google Sheets列
提取API响应字段并批量写入Google Sheets整列
修改后的完整代码
function import_inventory_test() { var options = { "method": "GET", "headers": { 'Content-Type': 'application/json', 'Prefer': 'code=200,dynamic=true', "clientId": "1", "key": "1" } }; // 发起API请求并解析响应JSON var response = UrlFetchApp.fetch("https://stoplight.io/mocks/flowhub/public-developer-portal/24055485/v0/inventory", options); var json = JSON.parse(response.getContentText()); // 定位API返回的商品数据数组(根据实际响应结构调整,示例假设数据在data字段下) var inventoryItems = json.data; // 提取所有sku字段,整理为Google Sheets要求的二维数组格式 var skuList = inventoryItems.map(item => [item.sku]); // 获取目标工作表(当前活跃表格) var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 可选:清空A列原有数据 sheet.getRange("A:A").clearContent(); // 批量写入sku数据到A列,从A1单元格开始 sheet.getRange(1, 1, skuList.length, 1).setValues(skuList); }
核心操作说明
- 请求头优化:合并原代码中重复的
Prefer请求头,避免请求异常 - SKU提取:使用
map方法遍历商品数组,将每个sku值包裹为单元素数组——这是Google Sheets批量写入的要求,setValues方法仅接受二维数组 - 表格写入:
- 批量写入比逐行写入效率提升显著,尤其适合100条以上的数据量
- 若需要指定固定表格,可替换
getActiveSpreadsheet()为SpreadsheetApp.openById("你的表格ID") - 清空A列的步骤可选,根据是否需要覆盖旧数据决定
适配不同响应结构
如果API返回的商品数据直接是数组(而非嵌套在data字段下),只需修改这一行:
var inventoryItems = json;
内容的提问来源于stack exchange,提问作者Kal El
相关产品推荐
相关产品推荐

