Skip to content
jsonforge.app

Inspektur JSON

Analisis ukuran, kedalaman, rincian tipe, dan kunci duplikat dari dokumen JSON.

Masukan JSON

Loading editor…

Statistik

Masukkan JSON di sebelah kiri untuk melihat statistiknya.

Apa itu Inspektur JSON?

Inspektur JSON — Alat yang menganalisis bentuk dokumen, bukan formatnya — alih-alih merapikan indentasi JSON Anda, alat ini melaporkan ukuran dalam byte, seberapa dalam struktur bersarangnya, berapa banyak objek/array/kunci yang dikandungnya, rincian tipe nilai (string, angka, boolean, null), dan satu hal yang tidak bisa ditampilkan formatter biasa sama sekali: kunci duplikat. JSON.parse() secara diam-diam hanya menyimpan kemunculan terakhir dari kunci yang berulang dalam satu objek, sehingga dokumen dengan {"role": "user", "role": "admin"} ter-parse tanpa eror dan membuang nilai pertama secara senyap — bug yang mudah muncul (menyunting konfigurasi besar secara manual, menggabungkan dua payload) dan sulit disadari sampai menimbulkan perilaku membingungkan di hilir. Alat ini memindai teks mentahnya sendiri, bukan hasil parse, sehingga bisa menandai duplikat tersebut sebelum membuat Anda kehilangan waktu debugging. Ukuran dihitung sebagai panjang byte UTF-8 persis dari teks mentah (menggunakan `TextEncoder`), bukan `.length` string JavaScript, sehingga dokumen yang kaya huruf beraksen, karakter CJK, atau emoji akan melaporkan lebih banyak byte dibanding jumlah karakternya.

Cara menggunakan Inspektur JSON

  1. Tempelkan atau ketik JSON Anda ke panel kiri.
  2. Statistik langsung diperbarui seketika di sebelah kanan: ukuran, kedalaman, jumlah node, dan rincian tipe.
  3. Periksa bagian "Kunci duplikat" — setiap kunci yang berulang dalam objek yang sama dicantumkan beserta jalurnya dan berapa kali ia muncul.
  4. Gunakan angka kedalaman dan jumlah node untuk menilai apakah dokumen cocok diproses dengan alat JSON ke Tabel atau Viewer Pohon sebelum mendalami lebih jauh.

Contoh

Dokumen dengan Kunci Duplikat

Masukan

{"user": {"role": "user", "role": "admin"}}

Keluaran

Kunci duplikat: user.role muncul 2× (hasil parse secara diam-diam menyimpan "admin")

Statistik Bentuk Dasar

Masukan

{"a": 1, "b": [1, 2, 3], "c": {"d": true}}

Keluaran

Objek: 2, Array: 1, Kedalaman maks: 2, Kunci objek: 4

Ukuran Byte dengan Unicode Multi-byte

Masukan

{"city": "北京"}

Keluaran

Ukuran: 18 byte, 14 karakter — setiap karakter Mandarin di "北京" memakan 3 byte UTF-8, sehingga jumlah byte jauh lebih besar daripada jumlah karakter.

Kesalahan umum

  • Mengasumsikan JSON yang valid dan bisa di-parse bebas dari bug kehilangan data — sebuah dokumen bisa ter-parse dengan sempurna sambil tetap membuang nilai pertama dari kunci duplikat secara diam-diam.
  • Mencampuradukkan "total node" (setiap objek, array, dan nilai primitif dihitung sekali) dengan sekadar jumlah kunci tingkat atas.
  • Tidak memeriksa kunci duplikat setelah menggabungkan dua payload JSON secara manual — itulah cara paling umum duplikat muncul.
  • Menganggap entri kunci duplikat sebagai sesuatu yang pada akhirnya akan dilempar sebagai eror oleh parser — JSON.parse() tidak pernah menolaknya; pemindaian ini adalah proses informasional terpisah yang dilakukan di atas parse yang sudah berhasil.
  • Mengharapkan kunci yang berulang di dua objek berbeda (satu 'id' di dalam 'user', lainnya di dalam 'order') muncul sebagai duplikat — pemindai ini hanya menandai kunci yang berulang dalam objek yang sama, sesuai perilaku persis yang diruntuhkan JSON.parse(). Untuk pemeriksaan nama berulang di seluruh dokumen lintas objek yang tidak berhubungan, gunakan alat JSON Analyzer.

Mengapa menggunakan alat ini

  • Berjalan sepenuhnya di browser Anda — apa pun yang Anda tempelkan tidak diunggah ke mana pun.
  • Menangkap bug kunci duplikat yang tak terlihat pada tampilan parse biasa, karena JSON.parse sudah membuang buktinya sebelum Anda sempat melihatnya.
  • Memberi gambaran cepat tentang ukuran dan bentuk dokumen sebelum memilih alat yang tepat (Viewer Pohon, Tabel, Formatter) untuk mengeksplorasinya lebih lanjut.
  • Ukuran byte dihitung dari pengodean UTF-8 aktual masukan Anda, bukan `.length` string JS (yang menghitung unit kode UTF-16), sehingga karakter multi-byte terwakili dengan benar alih-alih kurang hitung.
  • Setiap entri kunci duplikat menyertakan jalur persis ke objek yang memilikinya (seperti `user.role`), sehingga Anda bisa langsung menuju masalahnya pada dokumen besar tanpa memindai seluruhnya secara manual.

Pertanyaan yang sering diajukan