FAQ Penggunaan Alat: Data, Berkas, dan Ekspor
Intinya: Apakah data diunggah, sebesar apa berkas yang bisa ditangani, apakah ada yang disimpan secara lokal, mengapa teks Tionghoa berubah menjadi escape: sepuluh pertanyaan yang menjabarkan batas nyata sebuah alat JSON online.

Intinya: parsing, formatting, diffing, dan kueri berjalan sepenuhnya di browser Anda dan tetap bekerja secara offline; bersihkan riwayat localStorage setelah menangani data sensitif; dan beralihlah ke alat streaming di command line untuk berkas di atas 10 MB alih-alih menempelkannya ke browser.
Sebelum menempelkan payload sensitif ke alat online, ketahui ke mana datanya pergi. Artikel ini hanya membahas perilaku runtime alat, bukan sintaks.
1. Data dan privasi
Apakah formatter JSON online mengunggah data saya ke server?
Tidak. Parsing, formatting, minifying, diffing, dan kueri semuanya terjadi di browser, dan halaman tidak pernah mengirim apa pun yang Anda tempelkan ke server aplikasi.
Anda tidak perlu membaca pernyataan privasi untuk mengetahui apakah sebuah alat online mengunggah data; panel jaringan browser sudah cukup:
- Buka developer tools, beralih ke panel Network, dan aktifkan penyimpanan log (log persistence);
- Tempelkan beberapa JSON lalu klik "Format";
- Amati apakah muncul permintaan XHR atau fetch baru, dan apakah body-nya berisi konten Anda.
Untuk alat yang benar-benar lokal, langkah ini hanya menampilkan permintaan aset statis. Sebaliknya, jika satu aksi format menghasilkan POST /api/format
yang body-nya adalah teks asli Anda, maka data sudah meninggalkan browser, apa pun klaim halaman tersebut.
Setiap alat di situs ini adalah implementasi front-end murni, dan hasil build tidak memuat API server. Setelah offline, refresh yang memakai cache tetap berfungsi, yang juga merupakan cara paling langsung untuk mengetahui apakah sesuatu "sepenuhnya lokal".
Apakah saya masih bisa memakainya secara offline?
Ya, asalkan halaman sudah pernah dimuat sekali.
Aset situs diunduh ke cache browser pada kunjungan pertama, sehingga bahkan tanpa jaringan setelahnya, formatting, minifying, konversi JSON5, dan kueri JSONPath tetap berfungsi. Hanya fitur yang bergantung pada jaringan yang gagal, seperti memeriksa versi baru atau mengunduh installer desktop.
Uji offline juga merupakan cara bagus untuk memverifikasi bahwa "data tidak pernah keluar": jika semuanya rusak begitu Anda memutus koneksi, berarti setiap aksi sedang berbicara dengan server.
Apakah ada data yang disimpan secara lokal? Bagaimana cara membersihkannya?
Ya, tetapi hanya di localStorage browser saat ini, dan hanya riwayat serta pengaturan UI.
- Riwayat: 100 entri terakhir yang diproses dalam urutan kronologis terbalik, dipakai untuk memanggil kembali data yang sebelumnya ditempel;
- Pengaturan UI: tema, bahasa, preferensi indentasi, dan seterusnya;
- Tidak disimpan: berkasnya sendiri, catatan unggahan, atau apa pun yang membawa identitas.
Ada tiga cara membersihkannya, dari yang paling sempit sampai paling luas:
| Metode | Cakupan | Kapan dipakai |
|---|---|---|
| "Hapus riwayat" di halaman riwayat | Hanya menghapus riwayat, pengaturan tetap | Setelah menangani data sensitif |
Menjalankan localStorage.clear() di developer tools |
Semua data lokal untuk situs ini | Mendiagnosis pengaturan yang aneh |
| "Hapus data penjelajahan" browser untuk situs ini | Cookie, cache, dan penyimpanan sekaligus | Sebelum memakai komputer bersama |
Saat menangani data produksi di komputer bersama, bersihkan riwayat saat selesai, bukan sekadar menutup tab — localStorage tidak hilang saat tab ditutup.
Mengapa karakter Tionghoa berubah menjadi \u4e2d\u6587?
Karena fitur "escape" mengubah karakter non-ASCII menjadi urutan escape Unicode. Ini perilaku yang disengaja, bukan mojibake.
\u4e2d adalah code point dari karakter 中 (U+4E2D). Kedua bentuk itu identik secara semantik dalam JSON dan diurai menjadi string yang sama:
{
"escaped": "\u4e2d\u6587",
"plain": "中文"
}
Kapan escaping dibutuhkan? Saat menyematkan JSON ke sistem lama yang hanya menerima ASCII, menuliskannya ke header HTTP, atau menyenestkannya di dalam string lain. Kapan tidak dibutuhkan? Sebagian besar transport API dan penyimpanan berkas tidak membutuhkannya; menyimpan teks Tionghoa langsung sebagai UTF-8 menghemat byte — satu karakter Tionghoa adalah 3 byte, dan menjadi 6 byte setelah di-escape.
Jika Anda melihat teks Tionghoa berubah menjadi \u4e2d, periksa dulu apakah Anda menekan tombol "Escape", jangan langsung menduga encoding-nya rusak.
2. Berkas dan ukuran
Ukuran berkas berapa yang didukung?
Tidak ada batas keras di sisi browser; batas nyata datang dari tiga tempat:
| Tahap | Perkiraan bottleneck | Gejala |
|---|---|---|
| Menempel ke kotak teks | 1–5 MB | Input tersendat setelah menempel, kursor tertunda |
JSON.parse |
50–100 MB | Main thread terblokir beberapa detik, halaman tidak responsif |
| Rendering pohon | 10k–20k node | Frame terlewat saat memperluas, scroll membeku |
Dengan kata lain, berkas berukuran puluhan MB "bisa di-parse" tetapi "tidak bisa dipakai". Saat Anda benar-benar perlu memproses data seperti itu, langkah yang tepat bukan mencari alat online yang lebih kuat, melainkan beralih ke streaming (lihat FAQ Performa dan Keamanan).
Aturan praktis: di bawah 2 MB alat online tetap mulus; 2–10 MB berarti menerima satu dua kali tersendat; di atas 10 MB, utamakan skrip lokal.
Browser membeku setelah saya menempel. Apa yang harus dilakukan?
Jangan langsung refresh — refresh menghilangkan konten dan Anda harus menempel lagi. Selamatkan dengan urutan ini:
- Tunggu 10–30 detik. Dalam banyak kasus main thread sedang melakukan parsing atau rendering dan akan pulih sendiri;
- Begitu pulih, segera beralih ke tampilan "Minify" atau lipat pohon untuk mengurangi node DOM;
- Salin konten ke berkas lokal dan beralih ke command line:
# Lihat struktur 100 baris pertama saja, agar tidak memuat semuanya
head -c 200000 data.json | jq . | head -n 100
# Hitung entri dengan alat streaming, tanpa memuatnya ke memori
jq -c '.items[]' data.json | wc -l
Lain kali Anda menemui berkas besar, jalankan wc -c dulu untuk melihat jumlah byte, lalu putuskan apakah akan menempelkannya ke browser.
Mengapa formatting tidak berubah setelah saya menempel?
Tiga penyebab umum, diurutkan menurut frekuensi:
- Input sudah diminify dan tidak punya kesalahan sintaks: formatting hanya menyesuaikan indentasi, jadi jika aslinya memang dua baris, hasilnya tetap dua baris — baris baru di dalam string tidak diperluas;
- Kontennya bukan JSON: misalnya Anda menempel objek literal JavaScript (key tanpa kutip, kutip tunggal), dan parser melaporkan kesalahan alih-alih memformat;
- Anda menekan tombol yang salah: minify dan format bergerak ke arah berlawanan, dan minify membuang semua indentasi.
Cara mengetahui: lihat jumlah karakter di pojok kanan atas area output. Setelah formatting jumlahnya seharusnya bertambah (indentasi dan baris baru tambahan); jika justru berkurang, Anda menjalankan minify.
3. Input dan output
Bagaimana cara mengekspor hasilnya ke berkas?
Tiga cara, diurutkan menurut keandalan:
| Metode | Aksi | Kapan dipakai |
|---|---|---|
| Tombol unduh | Klik "Download" untuk menghasilkan berkas .json |
Hasil besar yang perlu diarsipkan |
| Salin ke clipboard | Klik "Copy" | Hasil kecil yang Anda tempel kembali ke kode |
| Pilih semua dan salin manual | Pilih area output lalu tekan Ctrl/Cmd + C |
Cadangan ketika tombol copy gagal |
Berkas yang diunduh berencoding UTF-8 tanpa BOM secara default. Ini penting: JSON dengan BOM langsung rusak di banyak parser (lihat bagian tentang BOM di FAQ Sintaks dan Format).
Apakah JSON5 dan JSONC didukung?
Ya, tetapi bedakan "parsing" dari "output".
- Di sisi input Anda dapat menempel JSON5 (kutip tunggal, key tanpa kutip, komentar, koma di ujung, bilangan heksadesimal) atau JSONC (hanya komentar);
- Di sisi output Anda dapat mengonversi ke JSON standar, atau mengonversi JSON standar kembali ke JSON5 agar pengeditan manual lebih mudah.
Selalu hasilkan JSON standar saat melintasi sistem. JSON5 adalah dialek untuk manusia yang menulis konfigurasi; body permintaan dengan
Content-Type: application/json yang berisi komentar atau koma di ujung biasanya akan ditolak oleh server.
4. Lingkungan dan kompatibilitas
Apakah berfungsi di ponsel?
Ya. Antarmuka mengalir ulang menjadi satu kolom, dan formatting, minifying, diffing, serta JSONPath semuanya tetap ada.
Namun menangani berkas besar di ponsel adalah pengalaman yang buruk: keyboard virtual menutupi konten, memilih teks sulit, dan browser mungkin membuang halaman saat Anda berpindah aplikasi, sehingga konten Anda hilang. Bisa diterima sebagai keadaan darurat, tetapi lakukan di desktop sehari-hari.
Mengapa berkas yang sama terbuka di Chrome tetapi error di Safari?
Biasanya bukan perbedaan browser melainkan perbedaan encoding. Debug dengan urutan ini:
- BOM: UTF-8 yang disimpan oleh Notepad Windows menyertakan BOM, yang tidak ditoleransi sebagian parser;
- Akhir baris: mencampur CRLF dan LF tidak memengaruhi JSON itu sendiri, tetapi menggeser nomor baris kesalahan yang dilaporkan, sehingga tampak "posisi kesalahannya salah";
- Karakter tak terlihat: teks yang disalin dari halaman web mungkin berisi zero-width space (U+200B), tak terlihat oleh mata tetapi cukup untuk merusak pencocokan key.
Satu perintah bisa menembusnya:
# Lihat hex 16 byte pertama; EF BB BF di awal berarti ada BOM
head -c 16 data.json | xxd
5. Rujukan cepat
| Pertanyaan | Kesimpulan |
|---|---|
| Apakah mengunggah data | Tidak, semuanya diproses secara lokal di browser, dan berfungsi offline |
| Di mana data disimpan | localStorage, hanya riwayat dan pengaturan, tidak pernah berkas |
| Ukuran berkas yang wajar | Mulus di bawah 2 MB; di atas 10 MB beralih ke command line |
Teks Tionghoa berubah menjadi \u |
Anda menekan escape; setara tetapi lebih besar, dan biasanya tidak perlu |
| Membeku, apa yang harus dilakukan | Tunggu pulih → lipat pohon → salin keluar dan gunakan jq |
| Apakah ekspor bebas BOM | Ya, UTF-8 tanpa BOM |
| Apakah komentar didukung | JSON5/JSONC di sisi input; hasilkan JSON standar |