Tentang pemformatan JSON
JSON (JavaScript Object Notation) adalah format pertukaran data paling umum di web. JSON mentah dari API sering diminimalkan — semua dalam satu baris tanpa spasi — yang sulit dibaca. Memperindah menambahkan indentasi yang konsisten.
Mengecilkan menghapus semua spasi yang tidak diperlukan, mengurangi ukuran file. Validasi memeriksa apakah teks adalah JSON yang benar secara sintaks: pencocokan tanda kurung, kunci berkutip, penempatan koma, dan tipe nilai.
Bagaimana cara merapikan atau memperkecil JSON?
Untuk merapikan JSON, urai teks menjadi struktur data lalu serialisasi ulang dengan jeda baris dan indentasi yang konsisten (umumnya 2 spasi); untuk memperkecil, serialisasi ulang struktur yang sama tanpa spasi ekstra sama sekali. Contoh: {"a":1,"b":2} dirapikan menjadi blok 4 baris dengan indentasi 2 spasi, dan diperkecil kembali menjadi {"a":1,"b":2}.
Langkah merapikan, memperkecil, dan memvalidasi JSON
- Tempel teks JSON mentah ke kotak input.
- Untuk merapikan, alat ini mengurai teks menjadi struktur objek/array, lalu menuliskannya kembali dengan indentasi 2 spasi dan satu jeda baris per kunci atau item array.
- Untuk memperkecil, alat ini mengurai struktur yang sama tetapi menuliskannya kembali tanpa jeda baris atau spasi ekstra, hanya menyisakan karakter yang diperlukan untuk sintaks yang valid.
- Untuk memvalidasi, alat ini mencoba mengurai teks tanpa memformat ulang; penguraian yang berhasil berarti JSON secara sintaksis valid.
- Jika penguraian gagal pada langkah mana pun, alasan pastinya (token tak terduga, koma hilang, tanda kurung tidak cocok) ditampilkan sehingga Anda dapat menemukan dan memperbaiki kesalahannya.
Merapikan vs. memperkecil
Merapikan: parse(teks) -> stringify(nilai, indent=2) | Memperkecil: parse(teks) -> stringify(nilai, indent=0)
- parse = mengonversi teks JSON menjadi objek, array, string, angka, boolean, atau null dalam memori
- stringify = mengonversi struktur tersebut kembali menjadi teks JSON, dengan atau tanpa indentasi
Contoh hasil merapikan dan memperkecil
| Input | Dirapikan (indentasi 2 spasi) | Diperkecil |
|---|
| {"a":1,"b":2} | {⏎ "a": 1,⏎ "b": 2⏎} | {"a":1,"b":2} |
| [1,2,3] | [⏎ 1,⏎ 2,⏎ 3⏎] | [1,2,3] |
| {"x":{"y":true}} | {⏎ "x": {⏎ "y": true⏎ }⏎} | {"x":{"y":true}} |
Pertanyaan yang sering diajukan
Mengapa alat ini mengatakan JSON saya tidak valid padahal terlihat benar?
Kesalahan tak kasatmata yang umum meliputi koma tambahan setelah item terakhir, tanda kutip tunggal alih-alih tanda kutip ganda di sekitar kunci dan string, atau kunci tanpa tanda kutip — semuanya valid dalam literal objek JavaScript tetapi tidak dalam JSON yang ketat. Validator mengikuti tata bahasa JSON yang ketat, sehingga hal-hal ini akan gagal meskipun teksnya terlihat mirip dengan JavaScript yang valid.
Apa perbedaan antara JSON dan objek JavaScript?
JSON adalah format data berbasis teks dengan tata bahasa yang ketat: kunci harus berupa string bertanda kutip ganda, koma tambahan dilarang, dan hanya sekumpulan tipe nilai tetap (string, angka, boolean, null, objek, array) yang diizinkan. Literal objek JavaScript adalah sintaks yang lebih longgar yang juga mengizinkan kunci tanpa tanda kutip, koma tambahan, fungsi, dan komentar, yang semuanya tidak valid dalam JSON.
Apakah memperkecil mengubah data yang direpresentasikan oleh JSON?
Tidak. Memperkecil hanya menghapus spasi yang bukan bagian dari nilai string mana pun; struktur data yang diurai, dan karenanya maknanya, identik sebelum dan sesudahnya. Hanya jumlah byte yang dibutuhkan untuk mengirim atau menyimpan teks yang berubah.
Bisakah saya memformat JSON bersarang dalam dengan alat ini?
Ya. Merapikan bekerja secara rekursif pada objek dan array dengan kedalaman berapa pun, mengindentasi setiap level bersarang tambahan 2 spasi sehingga strukturnya tetap terbaca terlepas dari seberapa dalam bersarangnya.
Alat ini memvalidasi dan memformat ulang JSON standar sebagaimana didefinisikan oleh RFC 8259; tidak mendukung JSON5, JSONC (komentar), atau dialek JSON longgar lainnya, dan input yang sangat besar (beberapa megabyte) mungkin lambat diproses di browser.
Sources: RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format, ECMA-404 - The JSON Data Interchange Syntax