Formatter JSONL

Tempel JSONL atau NDJSON di sini. Baris kosong akan otomatis diabaikan, dan setiap baris data harus berupa satu objek JSON yang utuh.

Hasil pemformatan akan muncul di sini.

Setiap baris yang tidak kosong harus berupa objek JSON yang utuh.

Total baris: 1Baris tidak kosong: 0Baris valid: 0Baris tidak valid: 0
Tempel JSONL untuk langsung memulai pemformatan.

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

  1. Tempelkan konten JSONL atau NDJSON ke area input, pastikan setiap baris tidak kosong adalah objek JSON yang berdiri sendiri
  2. Di kanan langsung diformat per baris dan pada baris rusak ditampilkan nomor baris, pesan error, dan rekaman aslinya
  3. Perbaiki baris terkait sesuai petunjuk sampai jumlah baris tidak valid menjadi nol
  4. 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.

AlatInput paling cocokKemampuan intiSkenario penggunaan
Formatter JSONLSatu objek JSON per barisValidasi dan merapikan per rekamanLog, NDJSON, arsip sesi, ekspor streaming
Formatter JSONSatu objek atau array JSON lengkapMerapikan seluruh dokumen JSONRespons API, file konfigurasi, payload sekali jalan
Perbaikan JSONTeks JSON dengan error sintaks atau tidak bakuMemperbaiki sintaks dulu lalu ke alat berikutnyaKoma 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