Dibangun dengan AI canggih di perangkat Anda dan akselerasi perangkat keras untuk performa profesional dengan privasi tanpa kompromi.AI di perangkat — profesional dan privat.
Formatter Pretty Print JSON
Format atau minify JSON, lalu telusuri sebagai pohon
- Tanpa unggahan
- ID panjang tetap persis
- Memperbaiki JSON rusak
- 25 MB gratis
Jatuhkan berkas JSON di sini
.json · .jsonc · .ndjson · .jsonl · .txt · hingga 25.0 MB di paket gratis
Atau tempel JSON
Format untuk JSON terbaca, Minify untuk bentuk valid terkecil.
Diterapkan di setiap tingkat sarang.
Rekursif ke objek bersarang. Array mempertahankan urutannya.
Simpan keduanya adalah satu-satunya pilihan yang tidak menghapus data.
Berlaku ketika berkas berisi lebih dari satu rekaman tingkat atas.
CRLF untuk berkas yang akan dibuka di Notepad Windows.
Membetulkan koma di akhir, kutip tunggal, komentar, dan literal Python, lalu mendaftar setiap perubahan.
Gratis: satu berkas hingga 25.0 MB. Pro: hingga 1 berkas, tanpa batas ukuran yang dipaksakan.
Cara memformat JSON
- 1
Tempel atau unggah JSON Anda
Jatuhkan berkas .json, .jsonc, .ndjson, .jsonl, atau .txt ke halaman, pilih satu lewat Jelajahi, atau buka panel tempel. JSON yang diminify, JSON berindentasi, dan JSON Lines semuanya bisa, dan alat ini memberi tahu mana yang ditemukan.
- 2
Pilih tampilan keluarannya
Pilih Format atau Minify, lalu indentasi 2 spasi, 4 spasi, atau tab. Bila mau, urutkan kunci, tentukan perlakuan untuk kunci ganda, dan pilih akhir baris LF atau CRLF. Semuanya gratis.
- 3
Baca hasilnya
Tampilan Teks menunjukkan keluaran terformat dengan sorotan sintaks. Tampilan Pohon memungkinkan melipat seluruh cabang dan menyalin jalur JSON dari nilai mana pun. Tampilan Statistik melaporkan isi dokumen, termasuk hal yang akan diubah pemformat lain.
- 4
Perbaiki bila rusak
JSON yang tidak valid mendapat pesan, baris dan kolom, serta baris bermasalah dengan penunjuk di bawah karakter yang tepat. Bila masalahnya bisa diperbaiki, tombol Perbaiki muncul dan setelahnya merinci persis apa yang diubah.
- 5
Unduh atau salin
Unduh berkas terformat atau salin ke papan klip. Semuanya terjadi di perangkat Anda, jadi tidak ada yang diunggah dan alat ini tetap bekerja luring setelah halaman dimuat.
Apa yang ditawarkan pemformat JSON ini
Pemformat JSON gratis ini mengubah JSON yang diminify atau sulit dibaca menjadi keluaran yang jelas dan berindentasi, dan mengembalikan JSON berindentasi ke bentuk valid terkecilnya. Tempel atau unggah dokumen Anda, pilih 2 atau 4 spasi atau satu tab, lalu baca hasilnya sebagai teks bersorot, pohon yang bisa dilipat, atau sekumpulan statistik tentang isi dokumen yang sebenarnya. Jika JSON tidak valid Anda mendapat baris, kolom, dan baris bermasalah yang ditandai; jika bisa diperbaiki Anda mendapat perbaikan yang merinci persis apa yang diubah. Semuanya terjadi di perangkat Anda, tanpa antrean dan tanpa unggahan.
- Pretty print dan minify — Ubah JSON yang diminify atau berantakan menjadi bentuk terbaca dan berindentasi — atau buang lagi setiap byte yang tidak perlu. Kedua arah gratis dan berjalan dalam satu lintasan yang sama.
- Pilihan indentasi — 2 spasi, 4 spasi, atau satu tab, di setiap tingkat sarang. Tab cocok untuk tim yang gaya kodenya memakainya; pilihan ini mengubah spasi dan tidak lebih.
- Urutkan kunci, empat cara — Mati, A ke Z, Z ke A, atau urutan natural yang membandingkan deretan digit sebagai angka sehingga item2 mendahului item10. Rekursif ke objek bersarang dan selalu membiarkan urutan array apa adanya.
- Tampilan pohon dengan jalur JSON — Lipat seluruh cabang untuk melihat bentuk respons besar sekilas, dan salin jalur nilai mana pun — rows[0].meta.created — langsung ke editor, konsol, atau jq Anda.
- Error dengan baris dan kolom — Pesan yang spesifik, posisi yang tepat, dan baris bermasalah yang dicetak dengan penunjuk di bawahnya. Bukan pergeseran karakter ke dalam dokumen yang mungkin hanya satu baris panjangnya.
- Perbaikan untuk JSON rusak — Koma di akhir, kutip tunggal, kunci tanpa kutip, komentar, literal Python, kutip tipografis, dan koma yang hilang. Opsional, dan mendaftar setiap perubahan alih-alih mengembalikan berkas yang sudah dibetulkan dan berharap Anda setuju.
- JSON Lines dan NDJSON — Berkas satu rekaman per baris terdeteksi otomatis dan tetap JSON Lines yang valid, atau bisa dibungkus menjadi satu array bila diminta.
- Tempel, unggah, unduh, salin — Tempel dari papan klip, jatuhkan berkas, atau jelajahi. Bawa hasilnya sebagai unduhan atau langsung ke papan klip. Pengguna Pro bisa memformat hingga 20 dokumen dan membawanya sebagai satu ZIP.
Apa yang tetap utuh pada JSON Anda
Sebuah pemformat hanya boleh mengubah spasi. Kedengarannya jelas, dan hampir semua pemformat JSON daring melanggarnya — termasuk yang terkenal — karena semuanya melakukan hal yang sama di dalam: membaca dokumen Anda menjadi nilai JavaScript dengan JSON.parse, lalu menuliskannya kembali dengan JSON.stringify. Perjalanan bolak-balik itu kehilangan informasi dengan lima cara tertentu, dan tak satu pun menghasilkan error atau tampak salah pada keluarannya. Alat ini tidak melakukannya. Setiap angka, setiap string, dan setiap kunci disalin dari teks asli Anda karakter demi karakter, jadi satu-satunya yang berubah adalah jarak di antaranya.
- Bilangan bulat panjang bertahan — Angka JavaScript adalah float 64-bit, jadi setiap bilangan bulat di atas 9.007.199.254.740.991 kehilangan digit akhirnya. 12345678901234567890 kembali dari perjalanan bolak-balik sebagai 12345678901234567000. Itu adalah snowflake ID, id objek Stripe, atau kunci utama 64-bit yang berubah menjadi nilai lain di berkas yang sebentar lagi Anda commit.
- Desimal presisi tinggi bertahan — Koordinat dengan delapan belas angka desimal dibulatkan ke yang muat dalam sebuah double; nilai seperti 1e-400 diam-diam menjadi 0. Di sini keduanya disalin persis seperti ditulis, termasuk ejaannya — 1.10 tetap 1.10 dan 1e2 tetap 1e2 alih-alih ditulis ulang sebagai 1.1 dan 100.
- Kunci ganda bertahan — JSON membolehkan sebuah objek menyebut kunci yang sama dua kali. Membacanya menjadi objek JavaScript hanya menyimpan yang terakhir, jadi pemformat yang bolak-balik diam-diam menghapus satu anggota. Di sini keduanya disimpan, tampilan Statistik menghitungnya, dan kendali Kunci ganda memungkinkan Anda menyelesaikannya ke yang pertama atau terakhir dengan sengaja alih-alih tak sengaja.
- Urutan kunci bertahan — Objek JavaScript memindahkan kunci yang mirip bilangan bulat ke depan dalam urutan numerik. Objek yang ditulis {"2": ..., "1": ..., "nama": ...} kembali dengan 1 dan 2 pindah ke depan, dengan pengurutan dimatikan, pada alat yang seluruh tugasnya hanya mengubah spasi.
- Escape bertahan — String yang ditulis dengan \u00e9 atau garis miring yang di-escape ditulis ulang oleh perjalanan bolak-balik menjadi karakter harfiah. Tidak berbahaya untuk kebanyakan data, dan berbahaya ketika berkasnya adalah fixture, muatan bertanda tangan, atau apa pun yang dibandingkan byte demi byte.
- Dan ia memberi tahu saat itu penting — Tampilan Statistik melaporkan berapa angka yang akan kehilangan presisi, berapa kunci ganda yang ditemukan, dan berapa kunci yang akan ditata ulang — agar Anda tahu apakah alat yang Anda pakai minggu lalu diam-diam mengubah data Anda.
Mengapa memformat JSON?
JSON yang diminify menghemat bandwidth dan nyaris tak terbaca. Memformatnya dengan indentasi dan pemisah baris membuat strukturnya jelas, sehingga Anda bisa men-debug berkas konfigurasi, memeriksa respons API, atau menyiapkan potongan untuk dokumentasi tanpa menghitung kurung. Kebalikannya sama bergunanya: minify sebuah dokumen sebelum dikirim membuang setiap byte yang hanya ada untuk mata manusia. Mengurutkan kunci memberi urutan stabil sehingga diff menampilkan perubahan nyata, dan tampilan pohon menjawab pertanyaan yang biasanya muncul pertama dari respons panjang: seperti apa bentuknya.
- Keterbacaan — JSON berindentasi memperlihatkan sarang, array, dan bidang yang hilang sekilas. Respons 40 baris menjadi sesuatu yang bisa dibaca alih-alih diurai di kepala.
- Diff yang stabil — Kunci terurut menghilangkan derau penataan ulang dari kontrol versi, jadi sebuah pull request menampilkan nilai yang berubah alih-alih urutan penulisannya.
- Muatan lebih kecil — Minify membuang indentasi dan pemisah baris dari dokumen yang tidak lagi membutuhkannya. Pada muatan API biasa itu penghematan sekitar 45 persen.
- Memahami bentuk — Tampilan pohon melipat cabang sehingga respons seribu baris muat di satu layar sebagai kerangka, dan setiap baris bisa memberi Anda jalur ke nilai yang dicari.
- Bolak-balik yang tepercaya — Karena tidak ada yang diserialkan ulang lewat nilai JavaScript, memformat lalu minify mengembalikan dokumen yang artinya persis sama dengan aslinya.
Membaca error JSON
Ketika JSON gagal dibaca, informasi yang berguna adalah di mana ia berhenti dan apa yang ditemukan di sana. Alat ini melaporkan penyebab yang spesifik, baris dan kolom, serta mencetak baris bermasalah dengan penunjuk di bawah karakter yang tepat. Itu paling penting pada dokumen yang diminify, di mana pergeseran karakter ke dalam satu baris sepanjang 200.000 karakter sama sekali tidak berarti. Inilah penyebab yang benar-benar muncul, kira-kira menurut seberapa sering.
- Koma di akhir — Koma sebelum kurung penutup. Sah di JavaScript dan JSON5, tidak di JSON. Dilaporkan pada komanya, bukan sebagai keluhan membingungkan tentang kurung sesudahnya.
- Kutip tunggal — 'kunci': 'nilai' adalah JavaScript, bukan JSON. String JSON selalu memakai kutip ganda. Perbaikan mengubahnya dan meng-escape kutip ganda di dalamnya.
- Kunci tanpa kutip — {kunci: 1} adalah literal objek JavaScript. JSON mengharuskan setiap kunci berupa string dalam kutip.
- Komentar — // dan /* */ lazim di konfigurasi yang ditulis tangan dan bukan bagian dari JSON. Berkas yang memakainya sering diberi nama .jsonc; perbaikan membuangnya.
- NaN, Infinity, dan literal Python — NaN, Infinity, True, False, None, maupun undefined tidak ada di JSON. Semuanya datang terus-menerus dari print milik Python dan dari konsol JavaScript. Perbaikan memetakannya ke null, true, dan false.
- Baris baru mentah di dalam string — Pemisah baris harfiah di dalam string tidak sah — harus ditulis sebagai \n. Ini yang terjadi ketika seseorang menempelkan pesan multi-baris ke berkas JSON dengan tangan.
- Dua dokumen dalam satu berkas — Isi setelah akhir nilai pertama. Sangat sering ini bukan error sama sekali melainkan JSON Lines, yang dideteksi dan diformat alat ini alih-alih ditolak.
Memperbaiki JSON yang rusak
Perbaikan adalah kotak centang, bukan bawaan, dan itu disengaja: memperbaiki berarti mengambil keputusan atas data orang lain. Koma yang hilang bisa diletakkan di dua tempat; garis miring terbalik yang menyendiri bisa dihapus atau di-escape. Jadi perbaikan hanya berjalan bila Anda memintanya, dan ketika berjalan ia melaporkan setiap perubahan dan berapa kali, di tampilan Statistik, di sebelah hasilnya. Ia juga tidak pernah menyentuh isi sebuah string: dokumen dibaca ulang dengan versi longgar dari pembaca yang sama yang menolaknya, dan JSON kanonik ditulis kembali dari token, sehingga koma di dalam nilai berkutip tidak pernah dikira struktur.
- Apa yang diperbaiki — Koma di akhir, koma yang hilang, titik dua yang hilang, string berkutip tunggal dan tipografis, kunci tanpa kutip, komentar //, /* */ dan #, NaN dan Infinity, True, False, dan None milik Python, undefined, angka heksadesimal dan berawalan plus, karakter kendali mentah di dalam string, string tak berujung, dan kurung yang belum ditutup di akhir berkas.
- Apa yang dipertahankan — Semua yang dipertahankan jalur ketat. Dokumen yang diperbaiki tetap memiliki bilangan bulat panjangnya, kunci gandanya, dan urutan kuncinya — perbaikan membetulkan sintaks dan membiarkan nilainya.
- Bagaimana garis miring menyendiri ditangani — Garis miring terbalik yang tidak didefinisikan JSON di-escape alih-alih dihapus. C:\qux menjadi C:\\qux, yang mengembalikan persis apa yang ditulis; menghapusnya akan diam-diam mengubah sebuah jalur Windows, dan itulah yang dilakukan kebanyakan alat perbaikan.
- Apa yang tidak dilakukannya — Ia tidak menebak isi. Bila sebuah anggota punya kunci tanpa nilai, ia menjadi null dan mengatakannya; bila tidak ada yang bisa diselamatkan di berkas itu, ia mengatakannya, alih-alih mengembalikan dokumen kosong yang kemudian gagal dibaca.
JSON Lines dan NDJSON
Sangat banyak berkas berekstensi .json bukanlah satu dokumen JSON. Log aplikasi, ekspor BigQuery dan Athena, dump Kafka, dan berkas batch OpenAI semuanya JSON Lines: satu nilai JSON lengkap per baris, tanpa array pembungkus dan tanpa koma antar-rekaman. Diserahkan ke pemformat biasa, semuanya menghasilkan error tentang isi tak terduga setelah rekaman pertama — pernyataan yang secara teknis benar dan sama sekali tidak berguna tentang berkas yang sah dalam format yang lazim.
- Dideteksi, bukan disetel — Bentuknya disimpulkan dengan membaca dokumen, bukan dari ekstensinya: banyak berkas JSON Lines bernama .json, dan dokumen berindentasi penuh pemisah baris sehingga akan mengelabui tebakan apa pun yang berdasar hitungan baris.
- Tetap satu rekaman per baris — Secara bawaan setiap rekaman ditulis kembali dalam bentuk minify pada barisnya sendiri, karena rekaman berindentasi yang terbentang di beberapa baris bukan lagi JSON Lines. Kendali indentasi mematikan dirinya selama itu berlaku dan menjelaskan alasannya, alih-alih diam seolah bekerja.
- Atau satu array — Beralihlah ke Satu array dan rekaman dibungkus menjadi satu array JSON yang diformat dengan indentasi pilihan Anda — biasanya itu yang Anda mau sebelum menyerahkan data ke sesuatu yang mengharapkan satu dokumen.
- Pengurutan dan perbaikan tetap berlaku — Semua setelan lain bekerja per rekaman: urutkan kunci, penanganan duplikat, akhir baris, dan perbaikan berperilaku sama entah berkasnya berisi satu rekaman atau sejuta.
Pilihan sekilas
- Keluaran — Format untuk JSON terbaca dan berindentasi; Minify untuk bentuk valid terkecil. Keduanya gratis.
- Indentasi — 2 spasi, 4 spasi, atau tab, di setiap tingkat sarang. Nonaktif selama Minify dipilih, dan selama rekaman JSON Lines dijaga satu per baris.
- Urutkan kunci — Mati, A ke Z, Z ke A, atau urutan natural. Rekursif ke objek bersarang; array selalu mempertahankan urutannya.
- Kunci ganda — Simpan keduanya, yang pertama, atau yang terakhir. Simpan keduanya adalah bawaan karena itu satu-satunya pilihan yang tidak menghapus data.
- JSON Lines — Satu rekaman per baris, atau semua rekaman dibungkus menjadi satu array. Hanya berarti bila masukan berisi lebih dari satu rekaman tingkat atas.
- Akhir baris — LF untuk Unix dan untuk apa pun yang masuk kontrol versi; CRLF untuk berkas yang akan dibuka di Notepad Windows.
- Baris baru penutup — Mengakhiri berkas dengan baris baru, seperti yang diharapkan perkakas POSIX dan kebanyakan linter.
- Perbaiki JSON tidak valid — Mati secara bawaan. Ketika menyala, masalah sintaks umum dibetulkan sebelum pemformatan dan setiap perubahan didaftar.
- Nama berkas keluaran (Pro) — Beri nama sendiri berkas yang diunduh. Nama bawaan diturunkan dari masukan, jadi ini kemudahan, bukan kemampuan yang hilang.
Dokumen 25 MB terformat dalam kurang dari setengah detik pada laptop masa kini, di luar thread utama, jadi halaman tidak pernah membeku.
Pertanyaan umum
Bagaimana cara kerja pemformat JSON ini?
Tempel JSON Anda atau jatuhkan berkas, pilih Format atau Minify dan indentasi 2 spasi, 4 spasi, atau tab, lalu baca hasilnya di tampilan Teks, Pohon, atau Statistik. Alat ini hanya menulis ulang spasinya: ia membaca dokumen Anda sebagai struktur posisi di dalam teks asli Anda dan menuliskan kembali karakter yang sama persis dengan pemisah baris dan indentasi baru. Setelah itu unduh atau salin hasilnya.
Apakah data JSON saya aman?
Ya. Pemformatan berjalan di perangkat Anda, bukan di server kami. Tidak ada unggahan, tidak ada bolak-balik ke server, dan tidak ada permintaan yang membawa data Anda ke mana pun, jadi kredensial, catatan pelanggan, dan respons API internal tetap di mesin tempat Anda menempelkannya. Seluruh alat berjalan secara lokal, itu pula sebabnya ia tetap bekerja tanpa jaringan setelah halaman dimuat.
Pilihan indentasi apa saja yang ada?
Anda bisa memformat dengan 2 spasi, 4 spasi, atau satu tab, diterapkan di setiap tingkat sarang. Dua spasi ringkas dan umum di proyek web; empat spasi memperjelas data yang bersarang dalam; tab cocok untuk tim yang gaya kodenya memakai tab. Pilihan ini hanya memengaruhi spasi, tidak pernah datanya. Minify menghapus indentasi seluruhnya, karena itu kendali indentasi dimatikan selama Minify dipilih alih-alih diam tanpa efek.
Apakah nomor ID panjang akan berubah?
Tidak, dan inilah alasan utama memakai pemformat ini alih-alih yang lain. Kebanyakan pemformat daring membaca JSON menjadi nilai JavaScript lalu menuliskannya kembali, yang membulatkan setiap bilangan bulat di atas 9.007.199.254.740.991 ke nilai terdekat yang muat dalam sebuah double. Snowflake ID Discord atau Twitter, id objek Stripe, atau kunci basis data 64-bit kembali sebagai angka yang berbeda, tanpa peringatan. Alat ini menyalin setiap angka dari teks asli Anda karakter demi karakter, jadi 12345678901234567890 tetap 12345678901234567890. Tampilan Statistik memberi tahu berapa angka yang akan terpengaruh.
Bagaimana dengan kunci ganda dan urutan kunci?
Keduanya dipertahankan secara bawaan. JSON membolehkan sebuah objek menyebut kunci yang sama dua kali, dan membacanya menjadi objek JavaScript hanya menyimpan yang terakhir, jadi kebanyakan pemformat menghapus data tanpa memberi tahu. Di sini kedua anggota bertahan, dan tampilan Statistik menghitungnya. Urutan kunci juga dipertahankan, termasuk kunci yang tampak seperti indeks array seperti "1" dan "2" — alat mana pun yang lewat JavaScript diam-diam memindahkannya ke depan objek, bahkan dengan pengurutan dimatikan. Jika Anda memang ingin menyelesaikan duplikat, kendali Kunci ganda menawarkan simpan yang pertama atau yang terakhir.
Apa yang dilakukan Urutkan kunci?
Urutkan kunci menata ulang kunci setiap objek secara rekursif ke objek bersarang, sementara array mempertahankan urutannya. A ke Z adalah urutan titik kode, seperti kebanyakan alat. Urutan natural membandingkan deretan digit sebagai angka, jadi item2 datang sebelum item10 alih-alih sesudahnya — yang Anda inginkan untuk kunci seperti field1 sampai field12 atau nomor versi. Pengurutan menghasilkan keluaran deterministik, jadi diff menampilkan perubahan nilai yang nyata alih-alih derau.
Apa yang terjadi jika JSON saya tidak valid?
Anda mendapat pesan spesifik, baris dan kolom tempat pembacaan berhenti, dan baris bermasalah yang dicetak dengan penunjuk di bawah karakter yang tepat. Penyebab umum adalah koma di akhir, kutip tunggal, kunci tanpa kutip, komentar, serta True, False, dan None milik Python. Bila error itu bisa diperbaiki otomatis, tombol Perbaiki muncul; menyalakan perbaikan menulis ulang dokumen lalu mendaftar setiap perubahan, agar Anda bisa menilainya sebelum mengunduh.
Bisakah menangani JSON Lines atau NDJSON?
Bisa. Berkas berisi beberapa rekaman tingkat atas, satu per baris, terdeteksi otomatis — tidak ada setelan untuk dicari dan tidak perlu mengganti nama berkas. Secara bawaan setiap rekaman ditulis kembali dalam bentuk minify pada barisnya sendiri, itulah yang menjaga berkas tetap JSON Lines yang valid. Ubah kendali JSON Lines ke Satu array dan rekaman dibungkus menjadi satu array JSON, diformat dengan indentasi pilihan Anda — biasanya itu yang Anda mau sebelum menyerahkan data ke sesuatu yang mengharapkan satu dokumen.
Seberapa besar berkas yang bisa diformat?
Paket gratis menangani berkas hingga 25 MB, yang mencakup hampir semua respons API, berkas konfigurasi, dan ekspor yang orang bawa ke pemformat. Pro menghapus batas yang dipaksakan dan berjalan sampai batas kemampuan perangkat Anda, serta menambahkan pemformatan batch hingga 20 berkas yang dikirim sebagai satu ZIP. Pemformatan berjalan di luar thread utama, jadi halaman tetap responsif: dokumen 25 MB terformat jauh di bawah satu detik pada laptop masa kini.
Apakah gratis, dan bisakah dipakai di ponsel?
Semua fitur pemformatan gratis: indentasi, minify, urutkan kunci, penanganan duplikat, tampilan pohon, statistik, perbaikan, JSON Lines, dan pilihan akhir baris. Berjalan di peramban modern mana pun di desktop, tablet, dan ponsel, serta mendukung seret dan lepas, unduh, dan salin. Pro menambah skala dan pengiriman — berkas lebih besar, batch, dan satu unduhan arsip — bukan jawaban yang berbeda.
dari 1.289 penilaian
Beri nilai alat ini
Ketuk bintang — hanya sebentar