Semua panduan

Memformat dan memvalidasi JSON

Buat JSON lebih mudah dibaca, periksa sintaksnya, atau buat versi ringkas. Panduan ini menjelaskan indentasi, pengurutan kunci, dan penyimpanan hasil.

Coba contoh yang disediakan

Unduh order-options.json, sebuah pesanan fiktif dengan dua barang dan nama kolom dalam bahasa Inggris. Objek customer mengelompokkan nama dan kota; array items berisi CARD-02 lalu BOX-01. Contoh ini mencakup teks dalam tanda kutip, jumlah dan harga berupa angka, nilai boolean true, serta null untuk catatan pengiriman kosong. Kolom sengaja tidak diurutkan agar Anda dapat melihat pengaruh opsi pengurutan.

Langkah demi langkah

  1. Buka Pemformat dan Validator JSON. Gunakan Berkas untuk membuka order-options.json yang disediakan, atau tempelkan isi file ke Nilai masukan.
  2. Atur Indentasi ke 2 untuk memakai dua spasi per tingkat. Biarkan Urutkan kunci objek tidak dicentang saat pertama kali menjalankan.
  3. Pilih Proses masukan. Alat memeriksa sintaks JSON sebelum menampilkan hasil. Jika ada kesalahan, gunakan nomor baris dan kolom untuk menemukan masalah, perbaiki input, lalu coba lagi.
  4. Baca hasilnya. Objek customer dan dua barang seharusnya mudah dipahami, dengan satu kolom atau elemen daftar per baris. Kolom mempertahankan urutan contoh selama pengurutan tidak dicentang.
  5. Pilih Unduh hasil untuk menyimpan formatted.json. Anda juga dapat memakai Salin teks untuk memindahkan hasil ke editor lain.
  6. Buka file yang diunduh di editor teks dan bandingkan dengan contoh menggunakan pemeriksaan di bawah. Lalu coba pilihan indentasi dan pengurutan lainnya, dengan memilih Proses masukan lagi setelah setiap perubahan.

Contoh sebelum dan sesudah

Contoh singkat ini memakai objek customer dari order-options.json sebagai dokumen JSON kecil. Bandingkan nama dan kota yang sama sebelum dan sesudah setiap pengaturan. Bagian referensi opsional di akhir menampilkan seluruh pesanan.

Membuat JSON ringkas lebih mudah dibaca

Atur Indentasi ke 2, biarkan Urutkan kunci objek tidak dicentang, lalu pilih Proses masukan. Hasil menambahkan baris baru dan dua spasi per tingkat sambil mempertahankan urutan awal kolom.

Sebelum: input ringkas

{"customer":{"name":"Zoë","city":"Bergen"}}

Sesudah: indentasi dua spasi

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Mengurutkan kunci di dalam objek

Pertahankan Indentasi pada 2, centang Urutkan kunci objek, lalu pilih Proses masukan. Di dalam customer, city kini muncul sebelum name. Kedua nilainya tetap sama.

Sebelum: urutan awal kunci

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Sesudah: kunci objek terurut

{
  "customer": {
    "city": "Bergen",
    "name": "Zoë"
  }
}

Membuat JSON ringkas

Pilih Minifikasi pada Indentasi, biarkan Urutkan kunci objek tidak dicentang, lalu pilih Proses masukan. Spasi pemformatan dan baris baru dihapus; teks dan urutan kolom tetap sama.

Sebelum: indentasi dua spasi

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Sesudah: Minifikasi

{"customer":{"name":"Zoë","city":"Bergen"}}

Memilih indentasi

PilihanFungsi
2Menggunakan dua spasi untuk setiap tingkat bersarang. Ini pengaturan dalam langkah utama.
4Menggunakan empat spasi untuk setiap tingkat bersarang sehingga objek dan array bersarang lebih menonjol.
↹Menggunakan satu tab untuk setiap tingkat bersarang. Lebar tampilan tab bergantung pada editor teks Anda.
MinifikasiMenghapus spasi pemformatan dan baris baru. Spasi di dalam teks bertanda kutip tetap menjadi bagian teks. Pilih ini untuk hasil ringkas, lalu pilih Proses masukan.

Mengubah input atau opsi menghapus hasil sebelumnya. Pilih Proses masukan lagi untuk membuat hasil dengan pengaturan baru. Alat membaca area input setiap kali dijalankan; hasil sebelumnya tidak otomatis dimasukkan kembali ke input.

Mengurutkan kunci objek

Biarkan Urutkan kunci objek tidak dicentang untuk mempertahankan urutan awal kolom setiap objek. Jika dicentang, kunci di seluruh dokumen diurutkan menurut urutan teks yang membedakan huruf besar dan kecil, termasuk objek di dalam array. Elemen array sendiri tetap mempertahankan urutan awalnya.

  1. Pertahankan Indentasi pada 2, centang Urutkan kunci objek, lalu pilih Proses masukan.
  2. Kunci tingkat teratas kini berurutan customer, deliveryNote, items, order, dan paid. Di dalam customer, city mendahului name. Di setiap barang, price mendahului quantity dan sku.
  3. Array items masih berisi CARD-02 lalu BOX-01. Mengurutkan kunci tidak mengurutkan barang berdasarkan sku atau harga.

Menyalin, mengunduh, dan memulai lagi

PilihanFungsi
Salin teksMenyalin hasil saat ini sebagai teks. Jika penyalinan tidak tersedia, alat memilih hasil agar Anda dapat menyalinnya secara manual.
Unduh hasilMenyimpan hasil saat ini sebagai formatted.json. Nama ini dipakai untuk hasil terformat, ringkas, dan terurut; ubah nama file jika ingin menyimpan beberapa versi.
Cetak hasilMembuka dialog cetak browser untuk teks hasil.
Muat contohMengganti input dengan contoh bawaan alat dan memprosesnya menggunakan pengaturan saat ini. Contoh itu berbeda dari order-options.json dalam panduan ini.
Hapus semuaMenghapus input, file yang dipilih, dan hasil. Pilihan indentasi dan pengurutan tetap berlaku.

Memeriksa JSON yang diunduh

  • Buka formatted.json di editor teks. Pastikan pesanannya ORD-1042, pelanggannya Zoë di Bergen, dan terdapat dua barang.
  • Periksa nilai dan tipenya: quantity berupa angka 2 lalu 1, harga tetap 19.50 dan 5.00, paid adalah boolean true tanpa tanda kutip, dan deliveryNote adalah null tanpa tanda kutip. Nama dan kode barang dalam tanda kutip tetap berupa string.
  • Setelah mencoba Urutkan kunci objek, pastikan urutan kolom sesuai penjelasan di atas dan CARD-02 masih mendahului BOX-01 dalam array items.
  • Coba Minifikasi dan Proses masukan. Tempelkan hasil kembali ke Nilai masukan, atur Indentasi ke 2, lalu pilih Proses masukan lagi. Bandingkan nilai dan urutan barang dengan contoh awal; pilihan pemformatan seharusnya mempertahankannya.

Pertanyaan dan pemecahan masalah

Mengapa alat melaporkan JSON tidak valid?

Periksa baris dan kolom yang disebutkan serta kolom tepat sebelum posisi itu. Kunci dan teks memerlukan tanda kutip ganda; kolom memerlukan koma dan titik dua; kurung siku dan kurung kurawal harus ditutup. Perbaiki input lalu pilih Proses masukan lagi. Validasi memeriksa sintaks JSON, sehingga hasil yang valid masih dapat kekurangan kolom yang dibutuhkan aplikasi Anda.

Bolehkah memakai komentar atau koma di akhir?

Hapus komentar dan koma tepat sebelum kurung siku atau kurung kurawal penutup. Keduanya tidak valid dalam JSON. Pemformat memerlukan input yang valid dan tidak memperbaikinya secara otomatis.

Apa arti peringatan kunci berulang?

Pesan “Kunci objek berulang dipertahankan. Sebagian pembaca mengabaikan kunci berulang.” berarti sebuah kunci muncul lebih dari sekali dalam objek yang sama. Pemformat mempertahankan entri itu dan memberi peringatan. Periksa sumber, pilih nilai yang dimaksud, dan hapus entri tambahan; aplikasi lain mungkin hanya mempertahankan salah satunya.

Mengapa file tidak dapat dibuka atau diproses?

Batas input adalah 2 MiB, atau 2.097.152 byte. File teks lokal harus menggunakan UTF-8. Jika alat melaporkan data terlalu rumit, kurangi tingkat penyarangan atau jumlah entri. Pecah input besar menjadi dokumen JSON lebih kecil yang utuh, bukan memotongnya di tengah objek atau array.

Mengapa angka panjang berubah di aplikasi lain?

Contoh presisi terpisah di bawah berisi 9007199254740993 dan 0.10000000000000001. Pemformat ini mempertahankan teks angka secara persis pada setiap pilihan indentasi dan pengurutan. Format exact-numbers.json lalu bandingkan hasil dengan exact-numbers-formatted.json di editor teks. Aplikasi yang mengimpor hasil masih dapat membulatkan angka, jadi pastikan aplikasi itu mendukung presisi yang Anda perlukan. Kode dengan nol di depan seperti 00123 harus berupa string dalam tanda kutip di JSON.

Bisakah pemformatan memulihkan digit yang sudah dibulatkan?

Pemformatan tidak dapat memulihkan digit yang dibulatkan atau dihapus sebelum teks mencapai alat. Kembali ke sumber awal dan ekspor nilai lengkap lagi. Jika nilai merupakan pengenal, bukan jumlah, memakai string dapat membantu aplikasi penerima mempertahankan digitnya.

Opsional: membandingkan contoh dan hasil referensi

Contoh kode dan unduhan ini dibuat dari order-options.json dengan pemformat yang sama di halaman alat. Referensi terformat dan ringkas menonaktifkan pengurutan kunci; referensi terurut memakai indentasi dua spasi dengan pengurutan aktif.

Contoh awal

{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}

Dua spasi; urutan awal kunci

{
  "order": "ORD-1042",
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  },
  "items": [
    {
      "sku": "CARD-02",
      "quantity": 2,
      "price": 19.50
    },
    {
      "sku": "BOX-01",
      "quantity": 1,
      "price": 5.00
    }
  ],
  "paid": true,
  "deliveryNote": null
}

Minifikasi; urutan awal kunci

{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}

Dua spasi; kunci objek terurut

{
  "customer": {
    "city": "Bergen",
    "name": "Zoë"
  },
  "deliveryNote": null,
  "items": [
    {
      "price": 19.50,
      "quantity": 2,
      "sku": "CARD-02"
    },
    {
      "price": 5.00,
      "quantity": 1,
      "sku": "BOX-01"
    }
  ],
  "order": "ORD-1042",
  "paid": true
}
File referensiPengaturanByte
order-formatted.jsonDua spasi; urutan awal kunci300
order-minified.jsonMinifikasi; urutan awal kunci193
order-sorted.jsonDua spasi; kunci objek terurut300

Ini hasil teks sebenarnya, bukan tangkapan layar antarmuka. Kode dapat terbungkus mengikuti lebar layar. Nama file referensi membedakan contoh; alat sendiri mengunduh setiap versi sebagai formatted.json.

Alat terkait

Sumber

RFC 8259 · JSON