RevealTheme logo

Pemformat dan Validator JSON

Format, percantik, validasi, dan minifikasi JSON. Berjalan sepenuhnya di browser Anda, sehingga data Anda tidak pernah meninggalkan perangkat Anda.

Cara menggunakan alat ini

  1. 1

    Tempel JSON Anda ke kolom input.

  2. 2

    Klik Format untuk mencetak rapi dengan indentasi, atau Minify untuk menghapus spasi kosong.

  3. 3

    Pesan kesalahan menunjuk ke baris dan kolom tepat tempat parsing gagal.

  4. 4

    Salin hasilnya ke clipboard Anda.

Apa itu JSON dan mengapa pemformatan penting?

JSON (JavaScript Object Notation) adalah lingua franca dari API web modern, berkas konfigurasi, dan pencatatan peristiwa terstruktur. Setiap API REST dan GraphQL mengembalikan JSON; setiap package.json, tsconfig.json, dan sebagian besar konfigurasi CI berupa JSON; AWS, GCP, dan Azure berbicara JSON di CLI mereka. Kekuatan JSON adalah tata bahasanya yang minimal: enam karakter struktural ({}, [], koma, titik dua, tanda kutip), empat tipe primitif (string, angka, boolean, dan null), dan penyarangan rekursif. Minimalisme itu juga menjadi kelemahannya: JSON tidak mendukung komentar, koma di akhir, kunci tanpa tanda kutip, atau string multibaris. Satu tanda kutip atau koma yang salah tempat merusak seluruh dokumen. Alat ini memvalidasi input sesuai RFC 8259 (spesifikasi JSON) lalu menyajikannya dengan indentasi yang konsisten untuk dibaca, atau menghapus semua spasi untuk transmisi melalui jaringan. Penguraian dan pemformatan berjalan sepenuhnya di browser Anda melalui fungsi bawaan JSON.parse dan JSON.stringify dari mesin JavaScript, kode yang sama yang berjalan di server Node.js dan di semua browser. Itu berarti data Anda tidak pernah melintasi jaringan dan perilaku validasi di sini sama persis dengan yang akan dilihat kode Anda di produksi.

Kasus penggunaan umum

  • Men-debug respons API dengan menempelkannya ke formatter — langsung lihat struktur yang disembunyikan oleh JSON terminifikasi.

  • Memvalidasi JSON sebelum mengirimkannya ke konsumen yang ketat (AWS CloudFormation, manifest Kubernetes, dll.).

  • Mencetak rapi log dari pustaka logging terstruktur (Pino, Bunyan) yang menghasilkan JSON satu baris.

  • Meminifikasi file konfigurasi sebelum menyematkannya ke HTML atau variabel lingkungan (lebih kecil, byte yang di-parse lebih sedikit).

  • Memformat payload JSON Web Token setelah mendekodekannya dari base64.

  • Membandingkan dua respons API dengan memformat keduanya lalu melihat perbedaannya.

Pertanyaan yang sering diajukan

Apakah JSON saya keluar dari browser?
Tidak. Seluruh penguraian dan pemformatan terjadi di browser Anda melalui fungsi bawaan JSON.parse dan JSON.stringify. Data tidak pernah sampai ke server maupun muncul di log. Aman digunakan dengan respons API yang berisi token, data pelanggan, atau rahasia lainnya.
Bisakah saya memformat JSON5 atau JSONC (dengan komentar)?
Tidak: alat ini mengikuti spesifikasi JSON yang ketat (RFC 8259). Komentar dan koma di akhir adalah kesalahan sintaksis dan akan menghasilkan pesan kesalahan dari parser. Untuk varian JSON yang fleksibel, gunakan parser JSON5 seperti json5.org, atau lewatkan input Anda melalui praprosesor yang menghapus komentar terlebih dahulu.
Berapa ukuran indentasi yang sebaiknya saya gunakan?
2 spasi adalah konvensi JavaScript dan web, serta yang paling universal. 4 spasi adalah nilai bawaan ekosistem Python (sesuai dengan indentasi PEP 8). Tab ditampilkan secara tidak konsisten di antara editor dan merusak alat pembanding; hindari kecuali tim Anda memiliki konvensi tab yang ketat. Pilihan ini murni estetika; parser tidak mempermasalahkannya.
Mengapa JSON yang diminifikasi penting?
JSON yang diminifikasi menghemat byte, sesuatu yang signifikan dalam skala besar (misalnya, API publik yang mengembalikan 100 KB data untuk jutaan permintaan). Untuk berkas konfigurasi kecil (beberapa KB), perbedaannya tidak berarti. Waktu penguraian browser identik untuk JSON yang diformat dan diminifikasi, jadi satu-satunya alasan untuk meminifikasi adalah bandwidth.
Bagaimana cara menafsirkan pesan kesalahan?
Pesan kesalahan dari JSON.parse JavaScript menyertakan posisi (offset dari awal) tempat penguraian gagal. Kesalahan umum: 'Unexpected token' biasanya menunjukkan tanda kutip atau koma yang hilang, atau karakter khusus yang tidak di-escape. 'Unexpected end of JSON input' berarti dokumen terpotong. 'Unexpected non-whitespace character' sering menunjukkan koma di akhir.
Bisakah saya memformat berkas JSON yang sangat besar?
JSON.parse browser menangani berkas hingga sekitar 100 MB sebelum kinerjanya menjadi bermasalah. Untuk berkas yang lebih besar, gunakan jq di baris perintah: alat ini dapat memproses berkas JSON yang sangat besar secara streaming.
Apa perbedaan antara JSON dan objek literal JavaScript?
JSON adalah subset ketat dari sintaksis objek literal JavaScript. Perbedaan: kunci JSON harus berupa string dalam tanda kutip ganda (JS mengizinkan kunci tanpa tanda kutip dan tanda kutip tunggal); JSON melarang komentar, koma di akhir, dan undefined; JSON tidak memiliki ekspresi, panggilan fungsi, maupun nilai terhitung. JavaScript dapat mengevaluasi JSON dengan aman; JSON tidak dapat mengevaluasi JavaScript sembarang.

Alat terkait