我在我的javascript中做一个console.log语句,以记录一个javascript对象。我想知道是否有一种方法,一旦完成-复制该对象作为javascript代码。我要做的是转换使用ajax创建的对象,将xml提要解析为静态javascript对象,以便文件可以在本地运行,而不需要服务器。我在chrome检查器窗口中包含了对象的截图,这样你就可以看到我正在尝试做什么。
在Chrome 89或更高版本中,您可以简单地右键单击控制台中的对象并选择复制对象(ref)。这也工作在一些其他地方在Chrome开发工具,例如,同时调试或内部响应标签的网络请求。
另一个选择是使用copy命令原样:
var x = { a: 1, b: 2 };
copy(x);
原来的答案
你可以使用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));
你现在可以在Chrome中通过右键单击对象并选择“存储为全局变量”:http://www.youtube.com/watch?v=qALFiTlVWdg来实现这一点
在Chrome的控制台中右键单击一个对象,从上下文菜单中选择存储为全局变量。它将返回类似temp1这样的变量名。 Chrome也有一个copy()方法,所以copy(temp1)在控制台应该复制该对象到你的剪贴板。
注意递归对象:如果你试图复制一个递归对象,你会得到[object object]。解决方法是尝试copy(JSON.stringify(temp1)),对象将作为有效的JSON完全复制到剪贴板,因此您可以使用许多资源中的一种来格式化它。
如果你得到Uncaught TypeError: conversion circular structure to JSON消息,你可以使用JSON。Stringify的第二个参数(它是一个过滤器函数)来过滤掉有问题的循环属性。更多细节请参阅Stack Overflow的答案。
请遵循以下步骤:
使用console.log从代码中输出对象,如下所示: 右键单击对象,然后单击“存储为全局对象”。Chrome会在此时打印变量的名称。让我们假设它叫做“temp1”。 在控制台中,键入:JSON.stringify(temp1)。 此时,您将看到整个JSON对象作为一个可以复制/粘贴的字符串。 此时,您可以使用http://www.jsoneditoronline.org/等在线工具来修饰字符串。
使用“Store as a Global Variable”是有效的,但它只获得对象的最终实例,而不是记录对象的时刻(因为您可能希望在对象发生变化时比较它们)。为了获得对象在被修改时的确切时间点,我使用这个…
function logObject(object) {
console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}
这样称呼它…
logObject(puzzle);
您可能希望删除.replace(/。/g, ",\n")正则表达式,如果你的数据碰巧有逗号在其中。
所以,。我有这个问题。除了我得到了[object object]
我相信你可以用递归来做这个,但这对我来说是可行的:
以下是我在控制台所做的:
var object_that_is_not_shallow = $("all_obects_with_this_class_name");
var str = '';
object_that_is_not_shallow.map(function(_,e){
str += $(e).html();
});
copy(str);
然后粘贴到编辑器中。
这将通过省略递归的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;
}, ' ');
}
右键单击要存储的数据
首先,右键点击你想要存储的数据->选择“存储为全局变量” 新的temp变量如下所示:(temp3变量): 控制台中出现新的临时变量 第二次使用命令复制(temp_variable_name),如图片: 在这里输入图像描述 之后,您可以将数据粘贴到任何您想要的地方。 希望有用的/
更新- Chrome 89
右键单击->复制对象
来源:(https://developers.google.com/web/updates/2021/01/devtools?utm_source=devtools)
同样来自调试器
您可以将对象作为字符串进行控制台
var objToString = JSON.stringify(obj)
console.log(objToString );
然后在一个编辑器,如notepad++粘贴输出,然后ehit插件格式
JSFormat
这实际上帮了我的忙我的情况有点极端。但对于我所做的,它是有效的。
我正在测试的设备上使用safari调试工具,我永远不能复制对象,就像你可以在Chrome中简单地右键单击并复制对象。
JSON。Stringify和粘贴内容到https://beautifier.io,但随后不得不尝试重新格式化它。
我最终使用本地存储和复制方法。
在代码中使用。
localStorage.setItem('dataCopy', JSON.stringify(data));
然后将其粘贴到控制台,然后单击enter。
copy(JSON.parse(window.localStorage.dataCopy))
然后在剪贴板中有对象数组。
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- jQuery日期/时间选择器
- 合并两个PHP对象的最佳方法是什么?
- 我如何预填充一个jQuery Datepicker文本框与今天的日期?
- 数组的indexOf函数和findIndex函数的区别
- jQuery添加必要的输入字段