Saya punya objek javascript yang telah diuraikan menggunakan JSON JSON.parse
Saya sekarang ingin mencetak objek sehingga saya bisa men-debug-nya (ada yang salah dengan fungsi). Ketika saya melakukan hal berikut ...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Saya mendapatkan beberapa [Objek objek] terdaftar. Saya bertanya-tanya bagaimana cara saya mencetak ini untuk melihat konten?
javascript
json
parsing
printing
Skizit
sumber
sumber
Jawaban:
Kebanyakan konsol debugger mendukung menampilkan objek secara langsung. Gunakan saja
Tergantung pada debugger Anda, kemungkinan besar ini akan menampilkan objek di konsol sebagai pohon runtuh. Anda dapat membuka pohon dan memeriksa objek.
sumber
console.log("object: " + obj)
itu tidak menampilkan objek, tetapi sebaliknya akan menampilkan "objek: [Object obj]".console.log("object: %O", obj)
(Chrome) atauconsole.log("object: %o", obj)
(Firefox | Safari) akan memberi Anda akses ke detail objek, lihat jawaban saya di bawah ini.console.log("My object: ", obj)
Anda tahu apa kepanjangan JSON? Notasi Obyek JavaScript . Itu membuat format yang cukup bagus untuk objek.
JSON.stringify(obj)
akan memberi Anda representasi string objek.sumber
coba
console.dir()
bukanconsole.log()
MDN mengatakan
console.dir()
didukung oleh:sumber
console.dir()
juga tersedia di FF8 +, Opera, Chrome dan Safari: developer.mozilla.org/en-US/docs/Web/API/console.dirJika Anda menginginkan JSON multiline cantik dengan lekukan maka Anda dapat menggunakan
JSON.stringify
argumen ke-3:Sebagai contoh:
atau
akan memberi Anda hasil sebagai berikut:
Di browser
console.log(obj)
bahkan melakukan pekerjaan yang lebih baik, tetapi di konsol shell (node.js) tidak.sumber
untuk mencetak objek parsing JSON cukup ketik
console.log( JSON.stringify(data, null, " ") );
dan Anda akan mendapatkan hasil yang sangat jelas
sumber
Gunakan format string;
Chrome memiliki Penentu Format dengan berikut ini;
%s
Memformat nilai sebagai string.%d
atau%i
Memformat nilai sebagai bilangan bulat.%f
Memformat nilai sebagai nilai floating point.%o
Memformat nilai sebagai elemen DOM yang dapat diperluas (seperti pada panel Elemen).%O
Memformat nilai sebagai objek JavaScript yang dapat diperluas.%c
Memformat string keluaran sesuai dengan gaya CSS yang Anda berikan.Firefox juga memiliki String Substitions yang memiliki opsi serupa.
%o
Menghasilkan hyperlink ke objek JavaScript. Mengklik tautan membuka inspektur.%d
atau%i
Menghasilkan bilangan bulat. Pemformatan belum didukung.%s
Menghasilkan string.%f
Menghasilkan nilai floating-point. Pemformatan belum didukung.Safari memiliki format gaya printf
%d
atau%i
Integer%[0.N]f
Nilai titik apung dengan N digit presisi%o
Obyek%s
Talisumber
Bagus dan sederhana:
sumber
Gunakan saja
dan Anda akan mendapatkan ini di konsol chrome:
sumber
Fungsi sederhana untuk mengingatkan konten suatu objek atau array.
Panggil fungsi ini dengan array atau string atau objek yang memberitahukan isinya.
Fungsi
Pemakaian
sumber
Kode berikut akan menampilkan data json lengkap di kotak peringatan
sumber
Jika Anda ingin men-debug mengapa tidak menggunakan debug konsol
sumber
Jika Anda bekerja di js di server, hanya sedikit lebih banyak senam berjalan jauh ... Inilah ppos saya (cantik-cetak-di-server):
yang melakukan bang-up pekerjaan menciptakan sesuatu yang saya benar-benar dapat membaca ketika saya sedang menulis kode server.
sumber
Saya tidak tahu bagaimana ini tidak pernah dibuat secara resmi, tetapi saya telah menambahkan
json
metode saya sendiri keconsole
objek untuk mencetak log yang lebih mudah:Berkali-kali diperlukan untuk melihat versi objek yang dikencangkan karena mencetaknya apa adanya (Objek mentah) akan mencetak versi "langsung" objek yang dimutasi saat program berlangsung, dan tidak akan mencerminkan keadaan objek tersebut. pada titik waktu yang dicatat, misalnya:
sumber