如何将两个Google Sheets关联数据合并为指定JSON并通过API传输?
从Google Sheets生成指定JSON并通过Curl发送到API的新手指南
步骤1:用Google Apps Script生成目标JSON
直接在Google Sheets里用内置脚本工具处理数据,无需额外软件:
- 打开你的Google Sheets文件,点击顶部菜单的扩展 > Apps Script,打开脚本编辑器。
- 清空默认代码,粘贴以下脚本:
function generateOrderJSON() { // 获取表格数据 const ss = SpreadsheetApp.getActiveSpreadsheet(); const ordersSheet = ss.getSheetByName("Orders"); // 确保表名与你的一致 const detailsSheet = ss.getSheetByName("Details"); // 确保表名与你的一致 const ordersData = ordersSheet.getDataRange().getValues(); const detailsData = detailsSheet.getDataRange().getValues(); // 跳过表头,将Details数据按OrderNum分组 const detailsMap = new Map(); for (let i = 1; i < detailsData.length; i++) { const [orderNum, itemNum, serNum] = detailsData[i]; if (!detailsMap.has(orderNum)) { detailsMap.set(orderNum, []); } // 处理ItemNum空格并添加自增task_id detailsMap.get(orderNum).push({ ItemNum: itemNum.replace(" ", ""), SerNum: serNum.toString(), task_id: detailsMap.get(orderNum).length - 1 }); } // 构建最终JSON结构 const result = { Orders: [] }; for (let i = 1; i < ordersData.length; i++) { const [orderNum, custName] = ordersData[i]; result.Orders.push({ CustName: custName, OrderNum: orderNum.toString(), Items: detailsMap.get(orderNum) || [] }); } // 格式化输出JSON到日志 const jsonString = JSON.stringify(result, null, 2); console.log(jsonString); // 可选:将JSON保存到Google Drive DriveApp.createFile("orders.json", jsonString, MimeType.JSON); }
- 确认脚本中的表名(
Orders/Details)与你的表格名称匹配。 - 点击运行按钮,首次运行需完成权限授权,按提示操作即可。
- 运行后点击左侧日志图标,复制生成的JSON内容,保存为
orders.json文件(或直接使用脚本自动保存到Drive的文件)。
步骤2:用Curl发送JSON到API
- 打开终端(Windows用命令提示符/PowerShell,Mac/Linux用终端)。
- 将
orders.json放在当前终端工作目录,或准备好文件的完整路径。 - 运行以下Curl命令(替换为你的API实际地址):
curl -X POST \ -H "Content-Type: application/json" \ -d @orders.json \ https://your-api-endpoint-url.com/target-path
- 参数说明:
-X POST:指定请求方法为POST-H "Content-Type: application/json":声明请求体为JSON格式-d @orders.json:读取本地JSON文件作为请求内容
注意事项
- 你提供的示例JSON存在语法错误(多余大括号、未闭合数组),上述脚本会生成语法完全正确的JSON结构。
- 若API需要身份验证,需在Curl命令中添加对应请求头,例如
-H "Authorization: Bearer YOUR_API_KEY"。
内容的提问来源于stack exchange,提问作者Darren Wachtell
相关产品推荐
相关产品推荐

