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

如何将JS对象作为格式化JSON复制到剪贴板?

格式化JSON对象复制到剪贴板实现方案

方案1:沿用现有copy-to-clipboard库,无需更换工具

你得到紧凑无格式字符串的原因是JSON.stringify默认未开启格式化配置,补充该方法的后两个参数即可实现带缩进、换行的格式化效果:
JSON.stringify完整语法为JSON.stringify(value, replacer, space):

  • 第二个参数replacer为替换规则,无特殊过滤/转换需求时传null即可
  • 第三个参数space为缩进空格数,传2或4即可生成符合阅读习惯的层级格式化JSON字符串

代码示例:

// 缩进使用2个空格,直接复制即可得到格式化效果
copy(JSON.stringify(copiedObj, null, 2))

如果需要和Chrome开发者工具copy object效果完全一致(支持尾逗号、兼容JS对象字面量格式),可以对生成的字符串做简单处理后再复制:

const formattedStr = JSON.stringify(copiedObj, null, 2).replace(/([^,])\n}/g, '$1,\n}')
copy(formattedStr)

方案2:原生Clipboard API实现(无第三方依赖)

如果项目不想额外引入工具库,可直接使用浏览器原生剪贴板API实现相同功能:

async function copyFormattedObject(obj) {
  const formattedJson = JSON.stringify(obj, null, 2)
  try {
    await navigator.clipboard.writeText(formattedJson)
  } catch (err) {
    console.error('复制失败:', err)
  }
}
// 右键触发时直接调用即可
copyFormattedObject(copiedObj)

注意:原生Clipboard API需要页面运行在HTTPS环境(localhost本地开发不受限),且仅支持在用户交互事件(点击、右键菜单触发等)的回调中调用,刚好匹配你的使用场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:39:02