我在我的javascript中做一个console.log语句,以记录一个javascript对象。我想知道是否有一种方法,一旦完成-复制该对象作为javascript代码。我要做的是转换使用ajax创建的对象,将xml提要解析为静态javascript对象,以便文件可以在本地运行,而不需要服务器。我在chrome检查器窗口中包含了对象的截图,这样你就可以看到我正在尝试做什么。


当前回答

这将通过省略递归的Window和Node对象来帮助对深层对象进行字符串化。

function stringifyObject(e) {
  const obj = {};
  for (let k in e) {
    obj[k] = e[k];
  }

  return JSON.stringify(obj, (k, v) => {
    if (v instanceof Node) return 'Node';
    if (v instanceof Window) return 'Window';
    return v;
  }, ' ');
}

其他回答

请遵循以下步骤:

使用console.log从代码中输出对象,如下所示: 右键单击对象,然后单击“存储为全局对象”。Chrome会在此时打印变量的名称。让我们假设它叫做“temp1”。 在控制台中,键入:JSON.stringify(temp1)。 此时,您将看到整个JSON对象作为一个可以复制/粘贴的字符串。 此时,您可以使用http://www.jsoneditoronline.org/等在线工具来修饰字符串。

你现在可以在Chrome中通过右键单击对象并选择“存储为全局变量”:http://www.youtube.com/watch?v=qALFiTlVWdg来实现这一点

右键单击要存储的数据

首先,右键点击你想要存储的数据->选择“存储为全局变量” 新的temp变量如下所示:(temp3变量): 控制台中出现新的临时变量 第二次使用命令复制(temp_variable_name),如图片: 在这里输入图像描述 之后,您可以将数据粘贴到任何您想要的地方。 希望有用的/

你可以使用copy(JSON.stringify(Object_Name))将一个对象复制到剪贴板;在控制台。

复制和粘贴下面的代码在您的控制台,并按ENTER。现在,尝试粘贴(CTRL+V for Windows或CMD+V for mac)它到其他地方,你会得到{"name":"Daniel","age":25}

var profile = {
    name: "Daniel",
    age: 25
};

copy(JSON.stringify(profile));

使用“Store as a Global Variable”是有效的,但它只获得对象的最终实例,而不是记录对象的时刻(因为您可能希望在对象发生变化时比较它们)。为了获得对象在被修改时的确切时间点,我使用这个…

function logObject(object) {
    console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}

这样称呼它…

logObject(puzzle);

您可能希望删除.replace(/。/g, ",\n")正则表达式,如果你的数据碰巧有逗号在其中。