JSON Formatter
Beautify, minify, dan validasi JSON - dan jika gagal diurai, ketahui lokasi persis kesalahannya.
Input
0 karakterOutput
Beautify, minify, dan validasi JSON - dan jika gagal diurai, ketahui lokasi persis kesalahannya.
JSON yang keluar dari log API atau file konfigurasi biasanya satu baris panjang, dan JSON yang tidak bisa diurai biasanya gagal di tempat yang tidak bisa Anda lihat. Alat ini mengindentasinya agar Anda bisa membacanya, meminifikasinya saat Anda membutuhkannya kecil, dan ketika rusak, ini memberi tahu Anda baris dan kolomnya serta menampilkan baris tersebut.
Kebanyakan waktu Anda di sini bukan untuk membuat JSON menjadi rapi - Anda di sini karena sesuatu menolaknya dan tidak mengatakan alasannya. Parser melaporkan baris, kolom, dan apa yang diharapkannya, dan alat ini mencetak baris tersebut beserta dua baris di sekitarnya. Koma yang hilang di baris keempat ratus dalam sebuah konfigurasi adalah perbaikan tiga puluh detik begitu Anda tahu di mana letaknya.
JSON tidak pernah mengizinkan keduanya, tetapi file yang sebenarnya diberikan orang kepada Anda - tsconfig, pengaturan VS Code, apa pun yang diedit manual - penuh dengan itu. Mencentang opsi ini menghapusnya sebelum penguraian, dan alat ini kemudian menyatakan berapa banyak komentar dan berapa banyak koma yang dihapusnya. Ini opsional dan dilaporkan secara tepat karena pemformat yang diam-diam mengubah dokumen Anda lebih buruk daripada yang menolaknya.
Ini tidak menebak apa yang Anda maksud. Di luar dua penghapusan di atas, tidak ada yang diperbaiki: kurung kurawal yang tidak tertutup, kunci bertanda kutip tunggal, atau kunci tanpa tanda kutip dilaporkan, bukan ditulis ulang. Mengurutkan kunci dan mengindentasi ulang tidak pernah mengubah urutan array atau isi string. Bagian berikutnya mencantumkan beberapa kasus ketika hasilnya tetap bisa berbeda dari yang Anda tempel.
JSON Anda diurai lalu ditulis ulang, jadi beberapa hal kembali dalam bentuk yang dinormalkan. Angka ditulis ulang: 1.50 menjadi 1.5, 1E3 menjadi 1000.0, dan -0 menjadi 0, dan desimal dengan digit lebih banyak dari yang muat dalam float 64-bit dibulatkan (0.1000000000000000055 menjadi 0.1). Bilangan bulat disimpan persis hingga 4.300 digit (yang lebih panjang ditolak). Jika sebuah objek mengulang kunci, hanya nilai terakhir yang disimpan, tanpa peringatan. NaN, Infinity, dan -Infinity diterima dan diteruskan apa adanya meskipun JSON standar (RFC 8259) tidak mengizinkannya, dan angka yang terlalu besar untuk float, seperti 1e400, keluar sebagai Infinity. Jika salah satu hal ini penting bagi sistem yang akan menerima data, periksa sendiri sebelum memercayai hasil tanpa galat.
Ini dikirim ke server untuk diurai dan langsung dikirim kembali dalam respons yang sama. Tidak ada yang ditulis ke disk, di-cache, atau dicatat, dan catatan penggunaan hanya menyimpan hitungan - ukuran, kedalaman bersarang, mode yang dipilih - tidak pernah dokumennya.
Biasanya komentar, koma di akhir, tanda kutip tunggal, atau kunci tanpa tanda kutip - semuanya umum di file konfigurasi dan tidak satu pun merupakan JSON yang sah. Centang "izinkan komentar dan koma di akhir" untuk dua yang pertama; yang lainnya benar-benar tidak valid dan harus diperbaiki.
Hingga 2.000.000 karakter per permintaan; teks yang lebih panjang ditolak dengan menyebutkan panjang persisnya. Untuk file seukuran itu, alat baris perintah seperti jq adalah instrumen yang lebih baik.
Pipeline log dan pemuat streaming membaca satu objek JSON per baris, bukan satu array besar. Pilih ini dan array tingkat atas akan kembali sebagai satu rekaman ringkas per baris.
Tidak. Urutan kunci objek tidak bermakna dalam JSON, dan urutan array - yang bermakna - tidak pernah disentuh. Pengurutan ada agar dua versi dokumen yang sama dapat dibandingkan tanpa gangguan.
Di Excel untuk Microsoft 365, simpan sebagai file .json lalu pilih Data > Get Data > From File > From JSON. Power Query akan membukanya: array tingkat atas tampil sebagai List, To Table mengubahnya menjadi satu kolom Records, dan tombol perluas (dua panah) di header kolom memecah setiap kunci ke kolomnya sendiri; memperluas array bersarang menambah satu baris per item. Power Query butuh satu dokumen JSON yang valid, jadi perbaiki dulu kesalahan di sini, lengkap dengan baris dan kolomnya, lalu simpan hasil Percantik atau Perkecil; keluaran JSON Lines ditujukan untuk alat log. Alat ini sendiri tidak mengonversi JSON ke CSV atau Excel.
Python sudah punya pemeriksa bawaan: python -m json.tool data.json mencetak dokumen dengan indentasi 4 spasi, atau berhenti dengan pesan seperti Expecting ',' delimiter: line 3 column 3. Jika jq terpasang, jq . data.json merapikan dokumen dan jq empty data.json hanya memeriksa, tanpa mencetak apa pun bila file valid. Keduanya tidak menerima komentar atau koma di akhir, jadi file konfigurasi yang memilikinya akan gagal di sana; tempel di sini dan centang "Izinkan komentar dan koma di akhir" untuk melihat apa yang dihapus.
Parser mengharapkan kunci objek tetapi menemukan hal lain. Biasanya kuncinya memakai tanda kutip tunggal atau tanpa tanda kutip, seperti {'name': 'Asha'} yang disalin dari Python atau JavaScript, yang berhenti di baris 1, kolom 2: JSON mewajibkan tanda kutip ganda di sekitar setiap kunci dan string, dan alat ini tidak pernah mengubah tanda kutip, jadi perbaiki sendiri. Pesan yang sama pada kurung kurawal penutup, seperti pada {"a": 1,}, berarti ada koma di akhir; centang "Izinkan komentar dan koma di akhir" untuk menghapusnya. Expecting value pada True, False atau None berarti nilai Python: JSON menulis true, false dan null dengan huruf kecil. Di Python, json.dumps(data) menghasilkan JSON yang valid, sedangkan print(data) tidak. Galat ditampilkan persis seperti yang ditulis parser Python, dalam bahasa Inggris, agar pesannya bisa dicari apa adanya.
Parser sudah membaca satu nilai JSON yang lengkap lalu menemukan teks lain sesudahnya. Penyebab umum: log JSON Lines (NDJSON) dengan satu objek per baris, yang berhenti di baris 2, kolom 1; dua dokumen yang ditempel berurutan; atau komentar // setelah kurung kurawal penutup terakhir, yang dihapus oleh "Izinkan komentar dan koma di akhir". Alat ini memeriksa satu dokumen setiap kali, jadi tempel satu rekaman saja, atau masukkan rekaman ke dalam [ ] dipisahkan koma; dengan memilih JSON Lines, rekaman itu ditulis lagi satu per baris.