Pemformat & Validator JSON Gratis Online
Tempel JSON Anda untuk memformat, meminifikasi, atau memvalidasinya secara instan. Semua pemrosesan terjadi di browser Anda.
Apa Itu JSON?
JSON (JavaScript Object Notation) adalah format data ringan yang digunakan untuk bertukar data antara server dan aplikasi web. Format ini dapat dibaca manusia dan mudah diurai oleh mesin. Alat ini membantu Anda memformat, meminifikasi, dan memvalidasi data JSON, sempurna untuk pengembang yang men-debug respons API, file konfigurasi, dan struktur data.
Apa yang Sebenarnya Dilakukan "Format JSON"
JSON tidak peka terhadap spasi pada tingkat spesifikasi: parser membaca {"name":"Alice","age":30} identik dengan bentuk multi-baris yang diindentasi. Perbedaan yang terlihat murni untuk pembaca manusia. Pemformatan (juga disebut "pretty-printing" atau "beautifying") menyisipkan indentasi antara level bersarang, menempatkan setiap properti pada barisnya sendiri, dan menambahkan spasi setelah titik dua antara kunci dan nilai. Minifikasi melakukan kebalikannya: lepaskan setiap byte spasi kecuali di dalam literal string. Respons HTTP produksi biasanya diminifikasi untuk menghemat bandwidth (gzip dan Brotli di tepi CDN menangani sisanya); selama pengembangan, versi yang diformat adalah yang Anda baca. Konvensi pemformatan standar: 2 spasi per level indent (default web modern: default Prettier, norma ekosistem JavaScript), 4 spasi untuk codebase yang mengikuti konvensi yang dipengaruhi Python, atau 1 tab untuk proyek yang lebih memilih indentasi tab. JSON.stringify() di JavaScript mengambil argumen kedua integer atau string yang mengontrol persis ini: JSON.stringify(data, null, 2) menghasilkan output yang diindentasi 2 spasi. Alat ini mengekspos tiga opsi yang sama.
JSON Itu Ketat: Aturan yang Membuat Orang Tersandung
Tata bahasa JSON terkenal tidak memaafkan. Kunci objek harus dikutip dengan tanda kutip ganda (tanda kutip tunggal tidak legal). Nilai string harus menggunakan tanda kutip ganda. Tidak ada koma trailing setelah properti terakhir objek atau elemen terakhir array: sumber kejutan yang sering bagi pengembang JavaScript karena JS itu sendiri menerima koma trailing. Tidak ada komentar: tidak seperti YAML atau JavaScript, JSON tidak memiliki sintaks komentar. Tidak ada nilai undefined: JSON hanya memiliki null; mencoba meng-encode JSON undefined JavaScript menghapus properti sepenuhnya. Angka harus dalam bentuk JSON-desimal: tidak ada nol di depan (007 ilegal), tidak ada heksadesimal (0x7F ilegal), tidak ada Infinity atau NaN. String harus UTF-8 yang valid: sebagian besar parser mentolerir masalah pasangan-pengganti UTF-16 tetapi spesifikasi memerlukan Unicode yang terbentuk dengan baik. Kunci duplikat secara teknis valid per spesifikasi tetapi menghasilkan perilaku tidak terdefinisi di sebagian besar parser (nilai terakhir biasanya menang). Beberapa varian JSON melonggarkan aturan ini: JSON5 (Aseem Kishore, 2012) mengizinkan koma trailing, tanda kutip tunggal, komentar, dan pelonggaran ergonomis lainnya; JSONC (digunakan oleh tsconfig.json VS Code dan serupa) adalah JSON dengan komentar baris gaya-C diizinkan; HJSON bertujuan keramahan-manusia dengan kunci yang dikutip opsional. Tidak ada yang merupakan JSON proper: mereka memerlukan parser sendiri, dan sebagian besar tooling produksi mengharapkan JSON ketat per RFC 8259.
Di Mana JSON yang Diformat Memperoleh Nafkahnya
- Membaca respons API. Endpoint REST mengembalikan JSON yang diminifikasi dalam produksi. Untuk memeriksanya selama debugging, tempel di sini, lihat strukturnya dengan indentasi yang tepat dan pewarnaan kunci, temukan bug.
- Membaca baris log terstruktur. Tumpukan logging modern (Datadog, Splunk, Elasticsearch, CloudWatch) memancarkan satu objek JSON per baris log, semua pada satu baris. Untuk membaca entri log yang kompleks dengan cepat, formatlah di sini.
- Meninjau file konfigurasi.
package.json,tsconfig.json,composer.json, kebijakan AWS IAM, manifest JSON Kubernetes: semua lebih mudah ditinjau ketika diformat secara konsisten. Opsi "Sort Keys" menghasilkan urutan alfabetis kanonis yang berguna untuk membandingkan dua konfigurasi. - Membandingkan dua dokumen JSON. Format keduanya dengan indentasi dan pengurutan kunci yang konsisten, lalu bandingkan hasilnya di alat diff favorit Anda. Tanpa normalisasi, JSON yang secara semantik identik yang berbeda hanya dalam spasi atau urutan kunci menghasilkan diff yang berisik.
- Memvalidasi file JSON yang diedit secara manual. Tempel, klik Validate: jika ada kesalahan sintaks, posisi dan pesan memberi tahu Anda persis di mana mencari. Lebih cepat daripada menjalankan file melalui build yang gagal dengan "unexpected token at line 47."
- Menemukan jalan ke nilai bersarang dalam. Buka tampilan Tree, klik pada nilai yang Anda pedulikan, lihat ekspresi JSONPath-nya: berguna untuk menulis kueri
jq, asersi JSONPath dalam pengujian, atau mengakses field dalam kode. - Minifikasi pra-deployment. Konfigurasi JSON yang dikirim dalam bundel browser, string JSON-dalam-JS yang disematkan, atau konteks apa pun di mana byte penting: minify menghapus semua spasi pemformatan.
JSON dalam Ekosistem Tooling yang Lebih Luas
Untuk alur kerja baris perintah, jq (Stephen Dolan, pertama dirilis 2012) adalah prosesor JSON kanonis: biner kecil yang ditautkan secara statis yang menangani pemformatan (jq .), penyaringan (jq '.users[] | .email'), transformasi, dan kueri kompleks dengan bahasa ekspresi ringkasnya sendiri. Pustaka standar Python menyertakan python -m json.tool untuk pretty-printing satu kali. JSON.stringify(obj, null, 2) bawaan JavaScript adalah formatter dalam-browser/dalam-Node tercepat. JSON Schema (draf saat ini 2020-12, diedit oleh Henry Andrews, Austin Wright, Greg Dennis dan lainnya) menyediakan kosakata untuk mendeklarasikan bentuk yang harus dimiliki dokumen JSON: kendala tipe, properti yang diperlukan, validator format, logika kondisional: dan merupakan standar untuk validasi kontrak API, spesifikasi OpenAPI 3.x, validasi konfigurasi, dan pembuatan formulir berbasis JSON. JSONPath (Stefan Goessner, 2007, sekarang distandarisasi sebagai RFC 9535 pada Februari 2024) adalah bahasa kueri seperti XPath untuk JSON, digunakan oleh subset jq yang lebih sederhana dan oleh alat seperti Postman, jsonpath-ng (Python), dan AWS CLI. JSON-LD (Rekomendasi W3C, versi saat ini 1.1 diterbitkan Juli 2020) memperluas JSON dengan konvensi data tertaut web semantik dan merupakan format yang direkomendasikan Google untuk markup data terstruktur pada halaman web. JSON Patch (RFC 6902) dan JSON Merge Patch (RFC 7396) mendefinisikan format diff/patch standar untuk dokumen JSON.
Tampilan Tree: Mengapa Itu Penting
Dokumen JSON pretty-printed bahkan ukuran sedang (beberapa ratus baris) sulit dinavigasi sebagai teks datar. Tampilan tree di alat ini menutup setiap objek dan array menjadi node yang dapat diperluas, memungkinkan Anda mengklik untuk melihat hanya level yang Anda pedulikan, dan menampilkan ekspresi JSONPath untuk node mana pun yang Anda klik. Fitur jalur-saat-klik adalah jembatan praktis antara "saya bisa melihat nilai yang saya inginkan dalam dokumen" dan "saya bisa menulis kode yang mengakses nilai itu": tempel jalur ke jq, ke kueri JSONPath, ke notasi tanda kurung JavaScript, ke asersi pengujian Postman. Untuk respons API yang bersarang dalam (Stripe, Shopify, Salesforce, apa pun dengan model domain yang kaya), tampilan tree + salin-jalur adalah alur kerja yang membawa "saya melihat field" ke "saya memiliki ekspresi akses" dalam dua klik.
Privasi: Validasi Hanya-Browser
JSON yang ditempel ke formatter sering kali merupakan data produksi nyata: respons API dengan pengidentifikasi pengguna, token sesi, ID entitas internal, nilai konfigurasi yang menyertakan URL endpoint dan flag fitur. Formatter JSON sisi server mengambil salinan setiap input ke log mereka. Alat ini mem-parsing JSON Anda dengan JSON.parse() bawaan browser, berjalan melalui struktur yang dihasilkan dalam JavaScript, dan memancarkan ulang sebagai string: semuanya di dalam tab browser Anda. Verifikasi di tab Network DevTools saat Anda mengklik Format (tidak ada permintaan yang dikirim), atau bawa halaman offline (mode pesawat) setelah dimuat dan formatter masih bekerja. Aman untuk respons API produksi, konfigurasi internal, JSON yang berisi token atau kunci, atau dokumen apa pun yang tidak ingin Anda salin ke hard drive orang asing.
Pertanyaan yang Sering Diajukan
Mengapa JSON saya gagal validasi?
Masalah umum termasuk koma di akhir setelah item terakhir, tanda kutip tunggal bukan ganda, kunci tanpa tanda kutip, dan tanda kurung yang hilang. JSON sangat ketat, kunci dan nilai string harus menggunakan tanda kutip ganda.
Apa perbedaan antara format dan minify?
Memformat menambahkan indentasi dan baris baru sehingga manusia dapat membacanya. Meminifikasi menghapus semua spasi putih yang tidak perlu untuk mengurangi ukuran file untuk penggunaan produksi. Konten data tetap sama baik di kedua cara.
Apakah ada batasan ukuran?
Tidak ada batas keras. Karena alat ini berjalan di browser Anda, file JSON yang sangat besar (10+ MB) mungkin lambat pada perangkat yang lebih tua. Untuk respons API biasa dan file konfigurasi, alat ini bekerja secara instan.
Apa yang dilakukan "Sort Keys" dan kapan saya harus menggunakannya?
Sort Keys mengurutkan setiap kunci objek secara alfabetis secara rekursif. Semantik data tidak berubah: urutan kunci objek JSON secara teknis tidak terdefinisi per spesifikasi, meskipun sebagian besar parser mempertahankan urutan penyisipan: tetapi output menjadi kanonis. Berguna untuk membandingkan dua dokumen JSON yang seharusnya secara semantik setara (tanpa pengurutan, perbedaan urutan-kunci menghasilkan diff yang berisik), dan untuk menghasilkan output build yang dapat direproduksi (data yang sama harus selalu di-serialisasi ke JSON yang identik byte terlepas dari bagaimana itu dibangun dalam memori).
Apakah dokumen JSON saya diunggah?
Tidak. Semua parsing, validasi, pemformatan, pengurutan, dan rendering tree terjadi di browser Anda melalui JSON.parse() dan JavaScript. JSON yang ditempel tidak pernah melintasi jaringan. Verifikasi di tab Network DevTools saat Anda mengklik Format (tidak ada permintaan yang dikirim), atau bawa halaman offline (mode pesawat) setelah dimuat. Aman untuk respons API proprietary, konfigurasi internal, JSON yang berisi token atau data sesi, atau apa pun yang dilindungi NDA.
Alat Terkait
Base64 Encoder & Decoder Online Gratis
Encode teks ke Base64 atau decode Base64 ke teks secara instan. Mendukung konversi file-ke-Base64. Gratis, tanpa pendaftaran, berjalan di browser Anda.
Gratis Markdown Previewer Online
Tulis Markdown dan lihat pratinjau yang dirender secara langsung berdampingan. Mendukung heading, bold, italic, code, tabel, daftar, dan lainnya.
Gratis Kata & Karakter Counter Online
Hitung kata, karakter, kalimat, paragraf, dan perkirakan waktu baca secara instan. Gratis, tanpa pendaftaran, bekerja di browser Anda.