Google Apps Script解析动态键JSON并将source值复制到target的问题
实现方案
完整可运行代码
function myFunction() { // 读取存储在Google Drive中的JSON文件 var file = DriveApp.getFileById("1xqnMYtkZ2iST3xqzs_zKqHwzC017VHqd"); var text = file.getBlob().getDataAsString(); var json = JSON.parse(text); // 遍历所有动态会话ID键 Object.keys(json).forEach(sessionId => { // 获取当前会话对应的对话记录数组 const conversationRecords = json[sessionId]; // 遍历单条对话记录,将source值同步到target conversationRecords.forEach(record => { record.target = record.source; }); }); // 生成格式化的更新后JSON字符串,缩进为2 const updatedJson = JSON.stringify(json, null, 2); Logger.log(updatedJson); // 如果需要将修改后的内容写回原Drive文件,取消注释下方代码即可 // file.setContent(updatedJson); // 返回更新后的完整JSON对象 return json; }
核心逻辑说明
- 动态键遍历:使用
Object.keys()方法可以直接获取根对象下所有动态生成的会话ID,不需要提前知晓具体键名就能完成全量遍历 - 字段同步:两层循环分别处理「单个会话」和「会话内的单条对话」,直接赋值即可完成source到target的内容同步
- 结果处理:
JSON.stringify()的后两个参数用于生成带缩进的格式化JSON,方便查看或回写存储
内容的提问来源于stack exchange,提问作者Thierry Andriatsilavoarison
相关产品推荐
相关产品推荐

