Javascript / Chrome - Cara menyalin objek dari inspektur webkit sebagai kode

493

Saya melakukan pernyataan console.log di javascript saya untuk mencatat objek javascript. Saya bertanya-tanya apakah ada cara, setelah selesai - untuk menyalin objek itu sebagai kode javascript. Apa yang saya coba lakukan adalah mengonversi objek yang dibuat menggunakan ajax untuk mem-parsing umpan xml menjadi objek javascript statis sehingga file dapat berjalan secara lokal, tanpa server. Saya telah menyertakan tangkapan layar objek di jendela inspektur krom sehingga Anda dapat melihat apa yang saya coba lakukan.masukkan deskripsi gambar di sini

mheavers
sumber
1
Coba gunakan firefox dan opsi .toSource (). Lebih mudah
chepe263

Jawaban:

1250
  1. Klik kanan objek di konsol Chrome dan pilih Store as Global Variabledari menu konteks. Ini akan mengembalikan sesuatu seperti temp1nama variabel.

  2. Chrome juga memiliki copy()metode, jadi copy(temp1)di konsol harus menyalin objek itu ke clipboard Anda.

Salin Objek Javascript di Chrome DevTools

Catatan tentang Objek Rekursif: Jika Anda mencoba menyalin objek rekursif, Anda akan mendapatkannya [object Object]. Jalan keluarnya adalah copy(JSON.stringify(temp1)), objek akan sepenuhnya disalin ke clipboard Anda sebagai JSON yang valid, sehingga Anda dapat memformatnya sesuai keinginan, menggunakan salah satu dari banyak sumber daya.

kevnk
sumber
3
kembali tidak terdefinisi dalam Versi chrome 49.0.2623.87 (64-bit)? kenapa>
Pardeep Jain
10
@PardeepJain - yang diharapkan dari metode copy () karena tidak ada yang kembali. Data harus di clipboard Anda.
Carl
35
Ini hanya memberi [object Object]saya.
Ullallulloo
1
@Ullallulloo coba logout dengan JSON.stringify seperti ini: stackoverflow.com/a/4293047/622287
kevnk
3
ini hanya berfungsi jika Anda memiliki objek JS yang dangkal, jika Anda memiliki objek mendalam rekursif maka Anda akan mendapatkan [Object Object] - yang diharapkan
Marwen Trabelsi
62

Coba JSON.stringify(). Salin string yang dihasilkan. Tidak berfungsi dengan objek yang berisi referensi melingkar.

Salman A
sumber
7
Saya tidak melihat cara kerjanya kecuali Anda memodifikasi kode yang mencatatnya.
iConnor
16
Saya mendapatkanTypeError: Converting circular structure to JSON
Tony Brasunas
40

Anda dapat menyalin objek ke papan klip menggunakan copy (JSON.stringify (Object_Name)); di konsol.

Misalnya: - Salin & Tempel kode di bawah ini di konsol Anda dan tekan ENTER. Sekarang, coba tempel (CTRL + V untuk Windows atau CMD + V untuk mac) di tempat lain dan Anda akan mendapatkan {"name": "Daniel", "age": 25}

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

copy(JSON.stringify(profile));
Sudharshan
sumber
14
Tidak bekerja dengan simpul DOM, jendela atau objek lain yang melingkar
Carles Alcolea
Sejauh ini solusi termudah untuk objek besar tapi sederhana.
Hersheezy
solusi termudah
Anandhukrishna VR
26

Anda sekarang dapat melakukan ini di Chrome dengan mengklik kanan pada objek dan memilih "Simpan sebagai Variabel Global": http://www.youtube.com/watch?v=qALFiTlVWdg

masukkan deskripsi gambar di sini

David Calhoun
sumber
2
Pada Versi 39.0.2171.95, opsi "Simpan sebagai Variabel Global" tidak tersedia saat memeriksa perangkat Android dengan Chrome.
Walter Roman
1
@ David Calhoun, saya memilih jawaban Anda. Sepertinya jawaban Anda diposting 12 Juni 2014 dan yang diterima adalah 5 Agustus 2014, sebagian besar mengambil apa yang Anda miliki. Saya harus mengakui bahwa ia menyebutkan temp1 di mana jawaban Anda hanya menunjukkannya di video Anda, jadi mungkin itu sebabnya jawaban lain diterima. Semoga sukses.
PatS
13

Ikuti langkah-langkah berikut:

  1. Keluarkan objek dengan console.log dari kode Anda, seperti: console.log (myObject)
  2. Klik kanan pada objek dan klik "Simpan sebagai Objek Global". Chrome akan mencetak nama variabel pada saat ini. Mari kita asumsikan itu disebut "temp1".
  3. Di konsol, ketik: JSON.stringify(temp1).
  4. Pada titik ini Anda akan melihat seluruh objek JSON sebagai string yang dapat Anda salin / tempel.
  5. Anda dapat menggunakan alat online seperti http://www.jsoneditoronline.org/ untuk membuat string Anda cantik saat ini.
sufinawaz
sumber
Langkah dengan JSON.stringify (temp1) dapat memengaruhi eksekusi yang lama jika objek besar.
heroin
@ JoTidee Saya punya masalah yang sama, tapi saya membuat debuggerpernyataan dan kemudian mengambil var saya langsung dari konsol di breakpoint.
Tony Brasunas
11

Jika Anda mengirim objek melalui permintaan, Anda dapat menyalinnya dari Chrome -> tab Network.

Minta Payload -> Lihat Sumber

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Christopher Marshall
sumber
2
Setelah menyalin muatan yang diuraikan, Anda dapat memformat json dari jsonformatter.curiousconcept.com .
Muhammad Hassan
0

Menggunakan "Store as a Global Variable" berfungsi, tetapi ia hanya mendapatkan instance akhir objek, dan bukan saat objek sedang dicatat (karena Anda mungkin ingin membandingkan perubahan ke objek saat terjadi). Untuk mendapatkan objek tepat pada saat dimodifikasi, saya menggunakan ini ...

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

Sebut saja seperti itu ...

logObject(puzzle);

Anda mungkin ingin menghapus regex .replace (/./g, ", \ n") jika data Anda memiliki tanda koma di dalamnya.

HoldOffHunger
sumber
0

Begitu,. Saya punya masalah ini ,. kecuali saya mendapat [objek objek]

Saya yakin Anda bisa melakukan ini dengan rekursi tetapi ini berhasil bagi saya:

Inilah yang saya lakukan di konsol saya:

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);

Lalu tempel ke editor Anda.

Twalow
sumber
0

Ini akan membantu meringkas objek dalam dengan meninggalkan objek rekursif Windowdan 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;
  }, ' ');
}
Dummker
sumber
0

Klik kanan pada data yang ingin Anda simpan

  • Pertama, Klik kanan pada data yang ingin Anda simpan -> pilih "Simpan sebagai variabel global" Dan variabel temp baru muncul seperti di bawah ini: (variabel temp3): Variabel temp baru muncul di konsol
  • Gunakan perintah salin kedua (temp_variable_name) seperti gambar: masukkan deskripsi gambar di sini Setelah itu, Anda dapat menempelkan data ke mana pun yang Anda inginkan. semoga bermanfaat /
Neo_
sumber
0

Tambahkan ini ke konsol Anda dan jalankan

copy(JSON.stringify(foo));

Ini menyalin JSON Anda ke clipboard

pengguna3294854
sumber