Parse / Pretty Print / Minify / Validasi / Escape / Unescape
Apa itu Formatir JSON?
Alat formatir JSON menambahkan indentasi dan jeda baris ke JSON yang dikompresi sehingga menjadi mudah dibaca dan diedit. Baik itu respons API yang panjang, data padat dalam file konfigurasi, maupun potongan JSON di dalam log, setelah diformat struktur dan setiap bidangnya menjadi jelas. Setelah memformat, gunakan Kompresor JSON untuk menghapus spasi; padukan dengan Alat Uji HTTP untuk mengirim permintaan, dan Konverter Timestamp untuk membaca waktu Unix di dalam bidang. Anda juga dapat memformat secara lokal dengan json.dumps(indent=2) di Python atau JSON.stringify(obj, null, 2) di JavaScript, tetapi alat ini langsung berjalan di peramban tanpa pengaturan.
Kasus Penggunaan Umum
Debugging API: respons JSON dari backend sering dikompresi menjadi satu baris. Tempel di sini untuk memperlihatkan struktur dan nilainya, lalu gunakan Alat Uji HTTP untuk melacak masalah lebih cepat. Penyuntingan konfigurasi: format package.json, tsconfig.json, dan file serupa sebelum menyunting agar tidak ada koma yang terlewat atau kurung yang tidak cocok. Analisis log: format potongan JSON dari log untuk segera menemukan bidang anomali dan pesan kesalahan. Migrasi data: ekspor JSON dari database NoSQL, validasi kelengkapan bidang di sini, lalu kompres dengan Kompresor JSON sebelum mengimpornya ke sistem target.
Cara Menggunakan Alat Ini
Tempel JSON Anda ke kotak input di kiri, pilih indentasi 2 atau 4 spasi, lalu klik Format untuk membuatnya rapi. Klik Minify untuk menghapus semua spasi dan menghasilkan JSON satu baris. Beralih ke tampilan pohon untuk menjelajahi struktur bersarang dengan kontrol perluas/ciutkan. Hasilnya dapat disalin ke clipboard atau diunduh sebagai file .json. Jika input bukan JSON valid, alat ini menandai baris dan kolom yang tepat agar Anda dapat memperbaikinya dengan cepat.
Tips & Teknik Konversi
Bagaimana mengonversi JSON ke TypeScript / Java / Go?
Saat mengintegrasikan API, memetakan respons JSON ke definisi tipe menghemat waktu. Pertama, format dan validasi JSON di sini agar struktur tidak valid tidak ikut masuk ke tipe Anda. Lalu petakan bidangnya: TypeScript menggunakan string, number, boolean; objek bersarang menjadi interface; dan array menggunakan tipe elemennya. Java dipetakan ke bidang POJO; Go ke bidang struct, ingat untuk mengekspor bidang dengan huruf pertama huruf besar. Dua kesalahan umum: bilangan bulat lebih dari 16 digit melampaui rentang bilangan bulat aman JavaScript, jadi ketik sebagai string atau bigint; dan bidang API opsional harus ditandai opsional (?).
Bagaimana mengonversi JSON ke XML / YAML / CSV?
Keempat format memiliki daya ekspresi berbeda, jadi periksa kompatibilitas struktur sebelum mengonversi:
- JSON → XML: petakan pasangan kunci-nilai ke tag dan array ke tag berulang; escap
<,&, dan>sebagai entitas XML. - JSON → YAML: YAML 1.2 adalah superset dari JSON, sehingga kebanyakan parser dapat membaca JSON secara langsung; saat mengonversi balik, ingat YAML sensitif terhadap indentasi.
- JSON → CSV: ini hanya cocok untuk struktur datar berupa array objek, dengan kunci sebagai header; struktur bersarang harus diratakan dulu (misalnya,
{"a":{"b":1}}menjadi koloma.b). - Validasi sebelum dan sesudah: pastikan JSON valid di sini, lalu validasi format target setelah konversi agar escap dan presisi angka tidak hilang di tengah jalan.
Bagaimana mengurutkan kunci JSON?
Kunci yang terurut membuat contoh dokumentasi API rapi dan diff antar respons lebih jelas. Di JavaScript, pengurutan rekursif satu baris adalah: const sortKeys = o => Array.isArray(o) ? o.map(sortKeys) : Object.fromEntries(Object.keys(o).sort().map(k => [k, sortKeys(o[k])])). Perhatikan bahwa standar JSON (RFC 8259) tidak menjamin urutan kunci; parser JS modern dan Python 3.7+ mempertahankan urutan sisipan sebagai detail implementasi. Pengurutan hanya untuk keterbacaan dan perbandingan—jangan bergantung padanya dalam logika bisnis.
Mengapa angka panjang berakhir dengan 0 setelah diformat?
Sebagian besar formatir JSON daring, termasuk yang ini, mengandalkan JSON.parse, yang mem-parsing angka sebagai presisi ganda IEEE 754. Batas bilangan bulat aman adalah 253-1 (16 digit, 9007199254740991). Angka dengan 17 digit atau lebih—ID pesanan, ID Snowflake, ID pengguna platform sosial—dapat kehilangan presisi secara diam-diam dan berakhir dengan 0. Uji sendiri: tempel {"id":12345678901234567890} lalu format. Perbaikan yang disarankan adalah membuat ID panjang menjadi string di lapisan transportasi (misalnya anotasi serialisasi string di Java atau pustaka json-bigint di JS), atau gunakan parser tanpa kehilangan yang mempertahankan teks asli. Mengirimkan ID panjang sebagai string adalah standar industri.
Kesalahan Sintaks JSON Umum
Jika format gagal, kemungkinan Anda terkena salah satu masalah umum ini. Alat ini melaporkan baris dan kolom yang tepat agar Anda dapat memperbaikinya dengan cepat:
- Kunci tanpa tanda kutip:
{name: "x"}seharusnya{"name": "x"}—kunci JSON harus berupa string dengan tanda kutip ganda. - Tanda kutip tunggal: string JSON hanya menggunakan tanda kutip ganda; ubah
'hello'menjadi"hello". - Koma yang menggantung: elemen terakhir tidak boleh diikuti koma, jadi
[1, 2,]tidak valid. - Komentar: JSON standar tidak mendukung
//atau/* */; alat ini dapat menghapus komentar sebelum memformat. - Huruf besar/kecil boolean/null: gunakan huruf kecil
true,false, dannull.
Bagaimana jika Karakter China Tampil sebagai \uXXXX?
Saat menempelkan JSON, karakter China mungkin tampil sebagai urutan \uXXXX (misalnya, \u7b80\u7f8e untuk 简美). Ini bukan kerusakan—itu adalah pelarian Unicode yang menggunakan \u diikuti empat digit heksadesimal. Biasanya terjadi karena API memaksakan keluaran aman-ASCII atau karena string diserialisasi demikian.
Untuk mengembalikan teks yang dapat dibaca, tempel teks ke alat ini dan klik Format. Implementasi standar JSON.parse secara otomatis mengonversi \uXXXX kembali ke karakter aslinya. Jika Anda membutuhkan kebalikannya—mengonversi teks terbaca ke pelarian \u untuk sistem lama—alat ini juga mendukung pelarian. Contoh:
{"name":"\u7b80\u7f8e\u5de5\u5177"}diformat menjadi{"name":"简美工具"}.- Jika Anda melihat rentetan panjang karakter
\u, kemungkinan besar itu pelarian ganda; format secara berlapis. - Saat men-debug China yang "rusak", pastikan dahulu apakah itu pelarian Unicode (
\uXXXX) atau masalah pengodean sungguhan seperti UTF-8 yang ditafsirkan sebagai GBK.
Peramban modern dan banyak bahasa (termasuk JSON.stringify JavaScript) mempertahankan karakter China apa adanya secara default dan hanya melarikan ke \u ketika keamanan ASCII diperlukan. Alat ini menampilkan kedua bentuk agar Anda dapat menyesuaikan spesifikasi antarmuka yang dibutuhkan.
Pertanyaan yang Sering Diajukan
Apakah format mengubah data saya?
Tidak. Format JSON hanya menyesuaikan indentasi, jeda baris, dan spasi. Tidak ada kunci, nilai, atau struktur data yang diubah, sehingga maknanya tetap identik sebelum dan sesudah diformat.
Apakah formatir JSON ini aman? Apakah data saya bocor?
Ya, aman. Semua pemformatan, minifikasi, dan validasi berjalan sepenuhnya di peramban Anda. Data Anda tidak pernah diunggah ke server mana pun.
Apa perbedaan antara memformat dan memampatkan?
Memformat menambahkan indentasi dan jeda baris agar JSON mudah dibaca. Memampatkan menghapus semua spasi dan jeda baris untuk menghasilkan satu baris kompak, mengurangi ukuran file untuk transmisi. Alat ini mendukung keduanya—cukup ubah indentasi atau klik tombol Minify.
Kesalahan apa yang ditangkap validator?
Kesalahan umum meliputi kurung atau tanda kutip yang tidak cocok, koma yang hilang atau berlebih, kunci tanpa tanda kutip, komentar (tidak diizinkan dalam JSON standar), dan koma yang menggantung. Alat ini menunjukkan baris dan kolom yang tepat untuk membantu Anda memperbaiki masalah dengan cepat.
Apa perbedaan antara tampilan pohon dan tampilan teks?
Tampilan pohon menampilkan JSON sebagai node yang dapat ciutkan, yang ideal untuk menjelajahi data bersarang kompleks dengan cepat. Tampilan teks menampilkan teks mentah yang diformat, lebih baik untuk disalin atau dibandingkan baris demi baris. Anda dapat beralih kapan saja, dan tampilan pohon mendukung ciutkan/bentangkan dengan satu klik.
Bagaimana format JSON berbeda dari format XML?
JSON menggunakan kurung kurawal dan siku untuk menyatakan hierarki, sedangkan XML menggunakan tag bersarang. JSON lebih padat dan efisien untuk ditransmisikan, menjadikannya format standar untuk API web modern. Alat ini berfokus pada pemformatan dan validasi JSON, termasuk penghapusan komentar dan penanganan pelarian, dan juga dapat memampatkan JSON menjadi format satu baris yang kompak.
Apa yang terjadi jika file JSON besar menjadi lambat?
Jika file JSON lebih besar dari 1 MB, periksa apakah berisi spasi atau komentar yang tidak perlu. JSON di bawah 500 KB biasanya langsung diformat di peramban. Anda dapat mempercepat dengan memampatkan dulu lalu memformat. Untuk ekspor sangat besar seperti dump database, bagi input atau pra-proses dengan alat baris perintah jq.
Apa perbedaan antara array dan objek JSON, dan bagaimana memformatnya?
Objek JSON menggunakan kurung kurawal {} untuk menyimpan pasangan kunci-nilai di mana setiap kunci harus berupa string bertanda kutip ganda. Array JSON menggunakan kurung siku [] untuk menyimpan daftar nilai berurutan yang bisa berupa string, angka, boolean, objek, atau array. Alat ini memformat objek dan array, mendukung ekspansi tampilan pohon, dan menampilkan setiap elemen array pada barisnya sendiri untuk verifikasi mudah.
Bagaimana mengembalikan karakter China dari pelarian \uXXXX?
Itu adalah urutan pelarian Unicode. Misalnya, "\u7b80\u7f8e" adalah 简美. Bukan teks rusak—itu karakter China yang dikodekan sebagai \u ditambah empat digit heksadesimal. Alat ini mengurai dengan JSON.parse standar dan mengembalikan karakter China asli secara otomatis. Jika Anda hanya melihat rentetan panjang karakter \u, mungkin pelarian ganda; tempel di sini dan format berlapis.
Apakah karakter China akan rusak setelah diformat? Perlukah dilarikan?
Tidak, tidak akan rusak, dan Anda tidak perlu melarikannya secara manual. Peramban modern dan banyak bahasa, termasuk JSON.stringify JavaScript, mempertahankan karakter China apa adanya secara default dan tidak memaksanya ke pelarian \uXXXX. Hanya larikan jika sistem penerima secara eksplisit membutuhkan keluaran aman-ASCII. Alat ini memungkinkan Anda melihat kedua bentuk agar sesuai dengan spesifikasi antarmuka yang diperlukan.
Bagaimana menemukan bidang dalam file JSON dengan puluhan ribu baris?
Gunakan dua pendekatan bersama-sama: pertama ciutkan lapisan di tampilan pohon untuk menyempitkan cakupan, atau gunakan Ctrl+F di tampilan teks untuk mencari nama bidang. Setelah mengetahui jalurnya, buat ekspresi JSONPath seperti $.store.book[0].title dan gunakan pustaka JSONPath di kode atau konsol peramban untuk mengekstrak nilai. Sangat disarankan memformat dulu karena menemukan bidang di JSON kompak satu baris hampir mustahil.
Dapatkah JSON dikonversi ke Excel atau SQL?
Array objek cocok untuk CSV atau Excel, di mana kunci menjadi header kolom dan setiap objek menjadi satu baris. Mengonversi ke SQL biasanya berarti membuat pernyataan CREATE TABLE atau INSERT dari JSON, yang memerlukan perataan struktur bersarang terlebih dahulu. Apa pun konversinya, format dan validasi JSON di sini dulu serta konfirmasi tipe bidang agar data kotor tidak masuk ke tabel atau database.