admin管理员组文章数量:1125929
I am doing a console.log
statement in my javascript in order to log a javascript object. Is there a way, once that's done - to copy that object as javascript code?
What I'm trying to do is convert an object that was created using ajax to parse an xml feed into a static javascript object so that a file can run locally, without a server. I've included a screenshot of the object in the chrome inspector window so you can see what I'm trying to do.
I am doing a console.log
statement in my javascript in order to log a javascript object. Is there a way, once that's done - to copy that object as javascript code?
What I'm trying to do is convert an object that was created using ajax to parse an xml feed into a static javascript object so that a file can run locally, without a server. I've included a screenshot of the object in the chrome inspector window so you can see what I'm trying to do.
Share Improve this question edited Sep 19, 2024 at 18:45 ΩmegaMan 31.5k12 gold badges107 silver badges133 bronze badges asked Apr 24, 2012 at 20:15 mheaversmheavers 30.1k62 gold badges198 silver badges326 bronze badges 1- 1 Try using firefox and the option .toSource(). It's easier – chepe263 Commented Apr 24, 2012 at 20:18
16 Answers
Reset to default 1626Right-click an object in Chrome's console and select
Store as Global Variable
from the context menu. It will return something liketemp1
as the variable name.Chrome also has a
copy()
method, socopy(temp1)
in the console should copy that object to your clipboard.
Note on Recursive Objects: If you're trying to copy a recursive object, you will get [object Object]
. The way out is to try copy(JSON.stringify(temp1))
, the object will be fully copied to your clipboard as a valid JSON, so you'd be able to format it as you wish, using one of many resources.
If you get the Uncaught TypeError: Converting circular structure to JSON
message, you can use JSON.stringify
's second argument (which is a filter function) to filter out the offending circular properties. See this Stack Overflow answer for more details.
In Chrome 89 or later you can simply right click an object in the console and choose Copy Object
(ref). This also works in some other places inside Chrome Developer Tools e.g. whilst debugging or inside response tab for a network request.
Other option is to use the copy
command as-is:
var x = { a: 1, b: 2 };
copy(x);
Original answer
You can copy an object to your clip board using copy(JSON.stringify(Object_Name)); in the console.
Eg:- Copy & Paste the below code in your console and press ENTER. Now, try to paste(CTRL+V for Windows or CMD+V for mac) it some where else and you will get {"name":"Daniel","age":25}
var profile = {
name: "Daniel",
age: 25
};
copy(JSON.stringify(profile));
You can now accomplish this in Chrome by right clicking on the object and selecting "Store as Global Variable": http://www.youtube.com/watch?v=qALFiTlVWdg
If you've sent the object over a request you can copy it from the Chrome -> Network tab.
Request Payload - > View Source
Follow the following steps:
- Output the object with console.log from your code, like so: console.log(myObject)
- Right click on the object and click "Store as Global Object". Chrome would print the name of the variable at this point. Let's assume it's called "temp1".
- In the console, type:
JSON.stringify(temp1)
. - At this point you will see the entire JSON object as a string that you can copy/paste.
- You can use online tools like http://www.jsoneditoronline.org/ to prettify your string at this point.
Update - Chrome 89
Right click -> Copy object
source: (https://developers.google.com/web/updates/2021/01/devtools?utm_source=devtools)
also from debugger
This actually helped me out mine is a bit of an edge case. But for what I am doing it works.
The devices I am testing on use safari debug tools and I can never copy the objects like you can in Chrome simply right click and copy object.
Tried JSON.stringify and the pasting the contents into https://beautifier.io but then have to try reformat it.
I ended up using local storage and the copy method.
In your code use.
localStorage.setItem('dataCopy', JSON.stringify(data));
Then just paste this in the console and click enter.
copy(JSON.parse(window.localStorage.dataCopy))
You then have your array of objects in the clip board.
This function will work for array objects if you face error:
Uncaught TypeError: Converting circular structure to JSON --> starting at object with constructor 'Object' | property 'fields' -> error:
function copyWithCircularRefs(input) {
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
// Instead of returning undefined, return a custom placeholder
return '[Circular]';
}
seen.add(value);
}
return value;
};
};
// Use the custom replacer function with JSON.stringify
const stringifiedData = JSON.stringify(input, getCircularReplacer(), 2);
// Copy the stringified data to the clipboard
copy(stringifiedData);
// Log a message to the console to confirm the action
console.log('Object copied to clipboard');
}
// Usage:
// Replace 'myComplexObject' with your actual complex object
copyWithCircularRefs(myComplexObject);
This function will now handle circular references by replacing them with the string '[Circular]'. When you paste the copied data, you'll see this placeholder wherever a circular reference was detected, which allows you to understand the structure without losing the reference information.
This should help stringify deep objects by leaving out recursive Window
and Node
objects.
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;
}, ' ');
}
you can console the object as string
var objToString = JSON.stringify(obj)
console.log(objToString );
Then in an editor like Notepad ++ paste de output and then ehit a plugin format
JSFormat
Using "Store as a Global Variable" works, but it only gets the final instance of the object, and not the moment the object is being logged (since you're likely wanting to compare changes to the object as they happen). To get the object at its exact point in time of being modified, I use this...
function logObject(object) {
console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}
Call it like so...
logObject(puzzle);
You may want to remove the .replace(/./g, ",\n") regex if your data happens to have comma's in it.
So,. I had this issue,. except I got [object object]
I'm sure you could do this with recursion but this worked for me:
Here is what I did in my console:
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);
Then paste into your editor.
Right click on data which you want to store
- Firstly, Right click on data which you want to store -> select "Store as global variable" And the new temp variable appear like bellow: (temp3 variable): New temp variable appear in console
- Second use command copy(temp_variable_name) like picture: enter image description here After that, you can paste data to anywhere you want. hope useful/
If you have bigint
data in JSON, all the answers do not work.
When you try to serialize an object that contains bigint
values using JSON.stringify()
, it throws a TypeError because it doesn't know how to represent bigint
values as strings.
You need a usage code:
copy(JSON.stringify(temp1, (_, v) => typeof v === 'bigint' ? v.toString() : v))
This function (_, v) => typeof v === 'bigint' ? v.toString() : v)
checks if the value is of type bigint
. If so, it converts the value to a string using toString()
. Otherwise, it leaves the value unchanged. This way, you can serialize objects containing bigint
values without encountering errors.
Screenshot copy bigint from chrome console
Add this to your console and execute
copy(JSON.stringify(foo));
This copies your JSON to clipboard
本文标签: javascriptCopy an object from the webkit inspector as codeStack Overflow
版权声明:本文标题:javascript - Copy an object from the webkit inspector as code - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736676522a1947208.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论