Formatter JSONL
Hasil pemformatan akan muncul di sini.
Setiap baris yang tidak kosong harus berupa objek JSON yang utuh.
Halaman formatter JSONL ringan untuk log, arsip sesi, dan ekspor streaming. Tempelkan objek JSON yang dipisah baris di sebelah kiri, lalu lihat langsung hasil format setiap rekaman di sebelah kanan, beserta baris mana yang rusak.
Rekomendasi Terkait
Apa itu pemformatan JSONL?
JSONL (JSON Lines) adalah format teks yang menyusun rekaman JSON per baris. Ciri intinya bukan «terlihat seperti JSON», melainkan «setiap rekaman menempati satu barisnya sendiri». Dalam engineering nyata, ini hampir selalu berarti setiap baris tidak kosong adalah objek JSON lengkap, dengan objek dipisah baris baru alih-alih dibungkus lagi dalam array besar `[{...},{...}]`.
Penyusunan ini sangat cocok untuk log, aliran peristiwa, arsip sesi, ekspor massal, dan pemrosesan streaming: program tidak perlu membaca seluruh file ke memori, cukup membaca per baris untuk mengonsumsi rekaman satu per satu. Jika ada baris rusak, nomornya bisa langsung dituju, alih-alih menghitung kurung dan mencari koma secara buta di dalam array JSON yang sangat panjang.
Pemformatan JSONL berbeda dari pemformatan JSON biasa. Formatter biasa mengasumsikan input adalah satu dokumen JSON lengkap; formatter JSONL harus mem-parse, memvalidasi, dan melaporkan error per baris, sembari menjaga semantik rekaman yang dipisah baris. Bagi log dan file ekspor, perbedaan ini sangat krusial.
Halaman ini dirancang di sekitar semantik nyata tersebut: di kiri Anda memasukkan rekaman objek yang dipisah baris, di kanan ditampilkan hasil format per rekaman, sementara baris rusak, terpotong, dan bukan-objek langsung ditunjukkan. Dengan begitu, saat memeriksa file `.jsonl`, Anda melihat «rekaman mana yang bermasalah», bukan sekadar `SyntaxError` yang umum.
Kasus penggunaan
- Merapikan JSONL yang diekspor dari log aplikasi per rekaman sebelum menelusuri field satu per satu, alih-alih menatap deretan objek panjang yang terpadat dalam satu baris
- Memeriksa file arsip sesi yang setiap barisnya adalah objek peristiwa, memastikan setiap rekaman utuh dan terbaca
- Saat ekspor massal dari pipeline data, platform tracking, atau Elasticsearch gagal, cepat menemukan baris objek JSON mana yang salah tulis
- Saat men-debug antarmuka output streaming, memastikan server benar-benar terus menghasilkan «satu objek per baris», bukan mengeluarkan objek setengah jadi lebih awal
- Menempelkan NDJSON yang disalin dari terminal, panel pemantauan, atau platform log cloud: rapikan strukturnya dulu lalu lanjut investigasi
- Memeriksa apakah pada hasil objek per baris buatan AI ada baris yang kemasukan array, string, atau JSON tidak lengkap
- Sebelum diimpor ke alur yang bergantung pada rekaman per baris seperti ClickHouse, BigQuery, atau Kafka Connect, tinjau dulu isi JSONL secara manual
- Saat mengaudit log audit, peristiwa risiko, atau aliran peristiwa tracking, per rekaman memeriksa apakah struktur objek tetap stabil dan konsisten
- Saat file JSONL terpotong atau unduhan tidak lengkap, langsung melihat objek terakhir mana yang tidak tertutup
- Memformat lebih dulu JSON yang dipisah baris yang diekspor alat internal, lalu mengirimkannya ke rekan untuk code review atau pencocokan data
- Sebelum menulis skrip yang mem-parse JSONL, pastikan dulu secara manual level field, objek bersarang, dan posisi array untuk memangkas waktu debug skrip
- Saat menangani file ekspor lama yang baris kosong dan rusaknya tercampur, saring dulu masalah struktur sebelum memutuskan apakah lanjut konversi ke CSV atau impor database
Cara Penggunaan
- Tempelkan konten JSONL atau NDJSON ke area input, pastikan setiap baris tidak kosong adalah objek JSON yang berdiri sendiri
- Di kanan langsung diformat per baris dan pada baris rusak ditampilkan nomor baris, pesan error, dan rekaman aslinya
- Perbaiki baris terkait sesuai petunjuk sampai jumlah baris tidak valid menjadi nol
- Setelah semua dipastikan valid, salin hasil format lengkap atau teruskan data ke skrip, importer, dan proses analisis berikutnya
Fitur
- Mem-parsing JSONL / NDJSON baris demi baris, tanpa perlu membungkus data secara manual menjadi array JSON utuh seperti `[{...},{...}]` terlebih dahulu
- Memvalidasi sesuai semantik file nyata «setiap baris tidak kosong adalah satu objek JSON», cocok dengan bentuk data umum seperti log, aliran peristiwa, dan arsip sesi
- Tata letak dua kolom: input `textarea` di kiri dan hasil format langsung di kanan, pas untuk memperbaiki sambil memeriksa
- Baris rusak langsung menampilkan nomor baris, pesan error parsing, dan konten aslinya, sehingga rekaman terpotong, kurung yang hilang, dan kesalahan penggabungan cepat diperbaiki
- Penyalinan hanya dibuka jika semua baris tidak kosong valid, agar data yang sebagian benar dan sebagian rusak tidak diteruskan ke proses berikutnya
- Statistik bawaan untuk total baris, baris tidak kosong, baris valid, dan baris tidak valid, agar cepat menilai berapa rekaman yang rusak pada file besar
- Menyediakan data contoh sehingga efek format JSONL bisa langsung dicoba saat pertama dibuka
- Semua pemrosesan berlangsung lokal di browser; log, peristiwa sesi, dan hasil ekspor API tidak diunggah
Formatter JSONL vs formatter JSON vs perbaikan JSON
Alat-alat ini sering dipakai berurutan, tetapi menyelesaikan masalah yang berbeda. Memilih pintu masuk yang tepat jauh menghemat waktu.
| Alat | Input paling cocok | Kemampuan inti | Skenario penggunaan |
|---|---|---|---|
| Formatter JSONL | Satu objek JSON per baris | Validasi dan merapikan per rekaman | Log, NDJSON, arsip sesi, ekspor streaming |
| Formatter JSON | Satu objek atau array JSON lengkap | Merapikan seluruh dokumen JSON | Respons API, file konfigurasi, payload sekali jalan |
| Perbaikan JSON | Teks JSON dengan error sintaks atau tidak baku | Memperbaiki sintaks dulu lalu ke alat berikutnya | Koma berlebih, komentar, masalah kutip, JSON terpotong |
Best Practices
Saat debug pertahankan bentuk JSONL asli, jangan membungkusnya menjadi array secara manual hanya agar mudah dipahami
Jika sistem hilir memang menerima JSONL, usahakan menelusuri dalam bentuk asli «satu rekaman per baris». Membungkusnya menjadi array memang bisa diberikan ke formatter biasa, tetapi menghilangkan semantik nomor baris asli dan lebih sulit memetakan error ke posisi baris rusak yang sebenarnya.
File besar: prioritaskan melihat beberapa baris terakhir
Banyak file JSONL tidak salah struktur di tengah, melainkan beberapa baris terakhirnya terpotong karena aliran terputus, unduhan gagal, atau penulisan belum selesai. Melihat beberapa rekaman ekor lebih dulu biasanya lebih cepat daripada menelusuri seluruh file dari awal.
Jika input mengandung kutip tunggal, komentar, atau gaya JSON5, lewat Perbaikan JSON dulu lebih hemat waktu
Halaman JSONL menekankan validasi objek per baris; jika data sumber sejak awal bukan JSON baku, memperbaiki lebih dulu sebelum memformat biasanya lebih efisien daripada mengoreksi manual setiap baris di file panjang.
Saat akan mengimpor ulang, wajib menjaga semantik transport «satu objek per baris»
Blok rapi multibaris di kanan lebih enak dibaca manusia, tetapi jika data akan ditulis kembali ke sistem log, antrean pesan, atau importer, pertahankan struktur sumber satu objek per baris alih-alih menjadikan tampilan pratinjau sebagai format transport akhir.
Jadikan nomor baris sebagai petunjuk utama, bukan membaca seluruh file dengan mata
Dalam debug nyata, jalur tercepat biasanya mengunci nomor baris rusak lebih dulu lalu membandingkan rekaman itu dengan rekaman valid di sekitarnya. Dengan begitu lebih cepat terlihat apakah kurung atau kutipnya hilang, field terpotong, atau sebuah objek kemasukan tipe yang salah.
Pertanyaan Umum
Apa bedanya JSON dan JSONL?
JSON biasa umumnya berupa satu objek atau array utuh yang harus diparse sebagai satu dokumen lengkap; sedangkan JSONL (JSON Lines, sering juga disebut NDJSON) berisi satu rekaman mandiri per baris, dan dalam praktik engineering yang paling umum adalah «satu objek JSON per baris». Ini lebih cocok untuk log, aliran peristiwa, pemrosesan streaming, dan impor massal karena bisa dibaca, ditulis, dan kesalahannya dilokasi per baris.
Mengapa halaman ini menekankan «satu objek JSON per baris»?
Karena sebagian besar file JSONL di dunia nyata memang diatur begitu, terutama log, arsip sesi, aliran peristiwa, dan file ekspor. Contoh arsip Anda juga berbentuk khas: setiap baris adalah objek yang dipisah baris baru. Halaman memvalidasi dengan semantik ini, yang jauh lebih sesuai dengan skenario debug nyata dibanding menerima nilai JSON apa pun secara longgar.
Apa bedanya JSONL dengan array JSON seperti `[{...},{...}]`?
Array JSON adalah satu dokumen JSON lengkap yang harus dibaca utuh dulu baru diparse; JSONL memecah setiap objek menjadi rekaman baris mandiri, bisa dibaca streaming, dan lebih mudah menemukan baris terkait saat satu rekaman gagal. Untuk file log besar dan aliran peristiwa, JSONL lebih cocok daripada satu array besar.
Mengapa baris kosong diabaikan?
Baris kosong biasanya berasal dari salin-tempel, rotasi log, atau pengeditan manual dan tidak mewakili rekaman data sungguhan. Mengabaikannya mengurangi kebisingan sembari tetap memeriksa secara ketat setiap baris yang berisi konten.
Bagaimana jika sebuah baris berupa array, string, atau `null`?
Halaman ini akan menilainya sebagai baris tidak valid, karena format sasarannya adalah «setiap baris tidak kosong adalah objek JSON». Jika data Anda memang perlu menyimpan array atau nilai mentah per baris, berarti itu bukan skenario khas log JSONL yang dioptimalkan halaman ini.
Mengapa saat ada satu baris rusak hasil keseluruhannya tidak bisa langsung disalin?
Ini interaksi yang sengaja konservatif. Menyalin hanya diizinkan ketika semua baris tidak kosong valid, agar hasil yang sebagian sukses dan sebagian rusak tidak diteruskan ke importer, skrip, atau rekan, sehingga menghemat biaya investigasi kedua.
Apakah ini membantu saya menemukan file log yang terpotong?
Bisa. Banyak masalah JSONL terjadi di beberapa baris terakhir, misalnya objek kehilangan `}`, string kehilangan kutip penutup, atau aliran jaringan terputus di tengah. Halaman langsung memaparkan baris rusak terkait, sangat cocok untuk unduhan tidak lengkap dan output streaming yang terputus.
Apakah JSONL dan NDJSON itu sama?
Dalam mayor besar konteks engineering keduanya bisa dianggap sinonim. Keduanya merujuk pada rekaman JSON yang dipisah baris baru; hanya kebiasaan penamaannya yang berbeda.
Apakah data saya diunggah saat memformat JSONL?
Tidak. Semua parsing, validasi, dan format dijalankan hanya secara lokal di browser; log, respons API, arsip sesi, dan konten ekspor data tidak dikirim ke server mana pun.
Kapan sebaiknya pakai formatter JSON biasa, bukan formatter JSONL?
Jika inputnya sendiri merupakan objek JSON lengkap atau array, seperti body respons API, file konfigurasi, atau paket data `[{...},{...}]`, gunakan halaman format JSON biasa; halaman JSONL ini lebih cocok hanya ketika input berupa rekaman objek yang dipisah baris.
Glosarium
- JSONL
- Format teks dengan rekaman JSON yang dipisah baris. Penulisan engineering paling umum: setiap baris tidak kosong adalah objek JSON lengkap.
- JSON Lines
- Kepanjangan dan nama umum lain dari JSONL, biasanya dianggap sinonim.
- NDJSON
- Newline Delimited JSON, secara harfiah «JSON yang dipisah baris baru». Pada sebagian besar skenario log dan pipeline data, praktis setara dengan JSONL.
- Rekaman per baris
- Tata letak data yang setiap barisnya mewakili satu rekaman lengkap, cocok untuk menulis dan membaca secara streaming serta melokasi error per baris.
- Pretty Print / format rapi
- Menata ulang JSON padat satu baris menjadi struktur terbaca dengan indentasi dan baris baru, agar level field mudah diperiksa manual.
- Baris rusak
- Baris yang bukan JSON valid, atau yang bisa diparse tetapi tidak sesuai struktur yang diharapkan (misalnya bukan objek), sehingga tidak bisa menjadi rekaman JSONL yang valid.
- Aliran terpotong
- Log atau ekspor yang terputus di tengah saat transmisi, flush, atau penyimpanan, sehingga rekaman terakhir tidak tertutup lengkap.
- Array JSON
- Dalam JSON standar, satu kumpulan utuh yang dibungkus `[` dan `]`, misalnya `[{...},{...}]`. Berbeda dengan JSONL, ini harus diparse sebagai satu dokumen utuh.
Authoritative References
- jsonlines.orgPenjelasan resmi JSON Lines
- IETFSpesifikasi resmi JSON RFC 8259
- Kompres JSON
- CSV ke JSON
- JSON ke CSV
- JSON Diff
- JSON Escape / Unescape
- Meratakan JSON
- Pemformat JSON
- Formatter JSONL
- Generator JSON
- Kueri JSONPath
- Penggabungan JSON
- Perbaikan JSON
- Validator Skema JSON
- Urutkan JSON
- JSON Stringify
- JSON ke HTML
- JSON ke Java
- JSON ke Markdown
- JSON ke SQL
- JSON ke TOML
- JSON ke TypeScript
- XML ke JSON
- Ubah JSON ke XML
- YAML ke JSON
- JSON → YAML
- JSON ke Python
- JSON ke Go
- JSON ke Rust
- JSON ke Swift
- JSON ke C#
- JSON ke C++
- JSON ke PHP