Bagaimana saya bisa menampilkan JSON dalam format yang mudah dibaca (untuk pembaca manusia)? Saya terutama mencari lekukan dan spasi putih, dengan bahkan mungkin warna / font-style / dll.
javascript
json
pretty-print
Menandai
sumber
sumber
<pre>
tag.Jawaban:
Pencetakan cantik diterapkan secara asli di
JSON.stringify()
. Argumen ketiga memungkinkan pencetakan cantik dan mengatur jarak untuk digunakan:Jika Anda membutuhkan penyorotan sintaks, Anda mungkin menggunakan beberapa sihir regex seperti:
Lihat beraksi di sini: jsfiddle
Atau cuplikan lengkap yang disediakan di bawah ini:
Tampilkan cuplikan kode
sumber
<pre>
.#transactionResponse
elemen Anda memilikiwhite-space: pre;
gaya CSS.stringify(...)
berfungsi pada objek JSON , bukan pada string JSON. Jika Anda memiliki string, Anda harusJSON.parse(...)
terlebih dahuluJawaban Pengguna Pumbaa80 sangat bagus jika Anda memiliki objek yang ingin Anda cetak. Jika Anda mulai dari string JSON yang valid yang ingin Anda cetak cantik, Anda harus mengonversinya menjadi objek pertama:
Ini membangun objek JSON dari string, dan kemudian mengubahnya kembali ke string menggunakan cetak cantik JSON stringify.
sumber
JSON.parse
jadi saya memodifikasinyaJSON.stringify(jsonString, null, 2)
. Tergantung pada JSON / Obyek Anda.<pre></pre>
tag.JSON.parse
hanya mati jika Anda memiliki str JSON yang tidak valid atau sudah dikonversi ke objek ... pastikan Anda tahu tipe data apa yang Anda hadapi sebelum mencobaJSON.parse
Cara yang lebih baik.
Prettify JSON Array dalam Javascript
sumber
Berdasarkan jawaban Pumbaa80, saya telah memodifikasi kode untuk menggunakan warna console.log (pasti bekerja pada Chrome) dan bukan HTML. Output dapat dilihat di dalam konsol. Anda dapat mengedit _variables di dalam fungsi dengan menambahkan beberapa style lagi.
Ini adalah bookmarklet yang dapat Anda gunakan:
Pemakaian:
Sunting: Saya baru saja mencoba melepaskan simbol% dengan baris ini, setelah deklarasi variabel:
Tetapi saya mengetahui bahwa Chrome tidak mendukung% yang lolos di konsol. Aneh ... Mungkin ini akan berhasil di masa depan.
Bersulang!
sumber
Jika ditampilkan dalam HTML, Anda harus menambahkan balise
<pre></pre>
Contoh:
Tampilkan cuplikan kode
sumber
<pre>
adalah suatu keharusan jika Anda menunjukkan JSON dalam<div>
. Terpilih hanya untuk petunjuk itu!Saya menggunakan ekstensi Chrome JSONView (sama cantiknya dengan :):
Edit: ditambahkan
jsonreport.js
Saya juga telah merilis penampil cetak cantik mandiri JSON online, jsonreport.js, yang menyediakan laporan HTML5 yang dapat dibaca manusia yang dapat Anda gunakan untuk melihat data JSON.
Anda dapat membaca lebih lanjut tentang format dalam Format Laporan JavaScript Baru HTML5 .
sumber
Anda dapat menggunakan
console.dir()
, yang merupakan jalan pintas untukconsole.log(util.inspect())
. (Satu-satunya perbedaan adalah ia mem-bypassinspect()
fungsi kustom apa pun yang didefinisikan pada objek.)Ini menggunakan penyorotan sintaks , indentasi pintar , menghilangkan tanda kutip dari kunci dan hanya membuat output secantik yang didapatnya.
dan untuk baris perintah:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
sumber
Inilah HTML yang mengagumkan dari user123444555621 yang disesuaikan untuk terminal. Berguna untuk men-debug skrip Node:
Pemakaian:
sumber
Untuk tujuan debug saya gunakan:
sumber
console.debug(data);
di (setidaknya) Chrome dan Firefox. Itu tidak menunjukkan representasi JSONdata
, apalagi yang dicetak cantik.console.debug("%s: %o x %d", str, data, cnt);
mungkin masih bermanfaat bagi seseorang.console.dir
yang memungkinkan untuk menavigasi data.Tidak puas dengan printer cantik lainnya untuk Ruby, saya menulis sendiri ( NeatJSON ) dan kemudian memindahkannya ke JavaScript termasuk formatter online gratis . Kode ini gratis di bawah lisensi MIT (cukup permisif).
Fitur (semua opsional):
Saya akan menyalin kode sumber di sini sehingga ini bukan hanya tautan ke perpustakaan, tetapi saya mendorong Anda untuk pergi ke halaman proyek GitHub , karena itu akan terus diperbarui dan kode di bawah tidak akan.
sumber
Terima kasih banyak @all! Berdasarkan jawaban sebelumnya, berikut adalah metode varian lain yang menyediakan aturan penggantian khusus sebagai parameter:
sumber
Ini bekerja dengan baik:
Baca lebih lanjut di sini: https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
sumber
Douglas Crockford's JSON di perpustakaan JavaScript akan cukup mencetak JSON melalui metode stringify.
Anda juga dapat menemukan jawaban untuk pertanyaan yang lebih lama ini bermanfaat: Bagaimana saya bisa mencetak JSON dalam skrip shell (unix)?
sumber
Saya mengalami masalah hari ini dengan kode @ Pumbaa80. Saya mencoba menerapkan penyorotan sintaks JSON ke data yang saya render dalam tampilan Mithril , jadi saya perlu membuat simpul DOM untuk semua yang ada di
JSON.stringify
output.Saya membagi regex yang sangat panjang menjadi bagian-bagian komponennya juga.
Kode dalam konteks pada Github di sini
sumber
Berikut adalah komponen format / warna JSON sederhana yang ditulis dalam Bereaksi:
Lihat itu berfungsi di CodePen ini: https://codepen.io/benshope/pen/BxVpjo
Semoga itu bisa membantu!
sumber
Anda dapat menggunakan
JSON.stringify(your object, null, 2)
Parameter kedua dapat digunakan sebagai fungsi replacer yang mengambil kunci dan Val sebagai parameter. Ini dapat digunakan jika Anda ingin memodifikasi sesuatu dalam objek JSON Anda.referensi lebih lanjut: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
sumber
Jika Anda membutuhkan ini untuk bekerja dalam textarea solusi yang diterima tidak akan berfungsi.
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
sumber
Jika Anda mencari pustaka yang bagus untuk membuat json cantik di halaman web ...
Prism.js cukup bagus.
http://prismjs.com/
Saya menemukan menggunakan JSON.stringify (obj, undefined, 2) untuk mendapatkan indentasi, dan kemudian menggunakan prisma untuk menambahkan tema adalah pendekatan yang baik.
Jika Anda memuat dalam JSON melalui panggilan ajax, maka Anda dapat menjalankan salah satu metode utilitas Prism untuk melakukan prettify
Sebagai contoh:
sumber
Ini bagus:
https://github.com/mafintosh/json-markup dari
mafintosh
HTML
Contoh stylesheet dapat ditemukan di sini
sumber
Tidak dapat menemukan solusi apa pun yang memiliki penyorotan sintaks yang bagus untuk konsol, jadi inilah 2p saya
Instal & Tambahkan dependensi cli-highlight
Tentukan logjson secara global
Menggunakan
sumber
Inilah cara Anda dapat mencetak tanpa menggunakan fungsi asli.
sumber
Cara paling sederhana untuk menampilkan objek untuk keperluan debugging:
Jika Anda ingin menampilkan objek di DOM, Anda harus mempertimbangkan bahwa itu bisa berisi string yang akan ditafsirkan sebagai HTML. Karena itu, Anda perlu melakukan beberapa pelarian ...
sumber
sumber
Untuk menyorot dan mempercantik dalam
HTML
menggunakanBootstrap
:sumber
Saya sarankan menggunakan HighlightJS . Ini menggunakan prinsip yang sama dengan jawaban yang diterima, tetapi bekerja juga untuk banyak bahasa lain , dan memiliki banyak skema warna yang telah ditentukan . Jika menggunakan RequireJS , Anda dapat membuat modul yang kompatibel dengan
Generasi bergantung pada Python3 dan Java. Tambahkan
-n
untuk menghasilkan versi yang tidak diperkecil.sumber