首页 > 解决方案 > 如何将对象作为格式化的 JSON 对象复制到剪贴板?

问题描述

对于我当前的项目,我有一个在上下文菜单上和从表中选择单元格后触发的方法。基本上,这些选择的值正在我创建的一种方法中组织到一个对象中,我希望以某种方式将它复制到剪贴板,因此当这个 JSON 对象被粘贴到其他地方时,它的格式很好(类似这样的东西可以在 Chrome 开发工具中按下“复制对象”选项来完成这些对象)

对象格式示例:

{
  "indicatorName": null,
  "instanceGuid": null,
  "facts": {
    "decimals": "2",
    "specialUnit": "Monetary"
  },
  "value": {
    "column": 0,
    "row": 1
  },
  "xAxis": {
    "title": null,
    "value": "Денежные средства и их эквиваленты",
    "indexNumber": null
  },
  "yAxis": {
    "title": null,
    "value": "2020-12-31",
    "indexNumber": null
  },
}

目前我尝试使用copy-to-clipboard库并设法通过 将一个对象作为字符串复制到剪贴板copy(JSON.stringify(copiedObj));中,这copiedObj是一个常规的 JS 对象,但是它的格式只是一个没有任何间距或换行的字符串,我需要在这个案子。

我也尝试在没有JSON.stringify()但不只是[object Object]复制文本的情况下传递它。

在这种情况下我可以做些什么来实现所需的格式?是否有我需要copy从这个库传递给函数的特定设置,或者是否有一些更好的工具可以建议使用来实现所需的结果?

标签: javascriptjsonclipboard

解决方案


正如 Shyam 在上面的评论中指出的那样,添加参数undefined2进入JSON.stringify(copiedObj, undefined, 2)可以达到预期的结果


推荐阅读