Google Sheet Apps Script alert输出美化JSON丢失缩进问题求助
问题原因
Apps Script 内置的SpreadsheetApp.getUi().alert()弹窗会自动合并、忽略字符串中的连续半角空格,因此即便JSON.stringify已经生成了带空格缩进的格式化字符串,最终显示时也会丢失缩进效果。
修复方案
你可以根据需求选择以下两种方案:
方案1:替换缩进符为制表符,适配原生alert
直接将JSON.stringify的缩进参数从空格数改为制表符\t,原生alert对制表符的识别度更高,不会随意合并:var jsonText = JSON.stringify(jsonObject, null, '\t') SpreadsheetApp.getUi().alert(jsonText);方案2:使用自定义模态弹窗,完全保留格式
如果需要更稳定、更美观的展示效果,放弃原生alert,改用HtmlService生成带<pre>标签的自定义弹窗,<pre>标签会100%保留文本的换行、空格缩进,还支持自定义样式调整显示效果:var jsonText = JSON.stringify(jsonObject, null, 2); // 构造带格式化样式的HTML内容 var htmlOutput = HtmlService.createHtmlOutput(` <pre style="padding: 12px; font-size: 14px; line-height: 1.5;">${jsonText}</pre> `).setWidth(650).setHeight(400); // 弹出模态框,第二个参数为弹窗标题可自定义 SpreadsheetApp.getUi().showModalDialog(htmlOutput, '格式化JSON结果');
内容的提问来源于stack exchange,提问作者Xys
相关产品推荐
相关产品推荐

