JSONL Viewer
Xem file JSONL (JSON phân tách bằng dòng mới) trong bảng phân trang. Dán đến hàng nghìn dòng, tìm kiếm, lọc, mở rộng từng bản ghi. File không bao giờ rời trình duyệt.
Công cụ này để làm gì?
JSONL (còn gọi là NDJSON — JSON phân tách bằng dòng mới) là định dạng tiêu chuẩn cho dữ liệu training LLM, audit log, event stream, và đầu ra batch API. Một đối tượng JSON mỗi dòng, không có mảng bao quanh. Thân thiện với append, parse từng dòng một, sống sót qua tham nhũng cục bộ. Nhưng đọc như một con người thì đau đớn — bạn muốn một bảng, không phải bức tường ngoặc nhọn. Công cụ này cho bạn bảng đó trong trình duyệt. Không có gì được upload; file được đọc bằng FileReader của trình duyệt và parse tại chỗ.
Khi nào nên dùng
- Kiểm tra dữ liệu training LLM. Dataset fine-tuning thường là
{"messages": [...]}mỗi dòng. Lướt qua corpus, kiểm tra cân bằng lớp, tìm dòng outlier khiến trainer của bạn fail. - Đọc đầu ra batch của OpenAI / Anthropic. Cả hai trả về kết quả batch dưới dạng JSONL — một dòng cho mỗi request, kèm status và content. Xem ngay request nào đã thành công.
- Review audit log. Log ứng dụng dạng JSONL phổ biến; công cụ này hiển thị chúng dưới dạng bảng để phân tích ad hoc mà không rời trình duyệt.
- Sanity-check event stream. Dump Kafka / Kinesis thường ở dạng JSONL. Xem phân trang nhanh, không cần jq.
- Chuyển JSONL → CSV. Dùng nút export khi muốn đổ dữ liệu vào bảng tính.
Cách parsing hoạt động
- Mỗi dòng không trống được parse độc lập như JSON. Dòng trống bị bỏ qua.
- Nếu một dòng fail, nó xuất hiện dưới dạng dòng đỏ với lỗi parser — phần còn lại tiếp tục. Cố ý: một dòng hỏng không nên khiến bạn mất một nghìn dòng khác.
- Cột được tự động phát hiện từ hợp của các key trong 100 dòng hợp lệ đầu tiên, sắp xếp theo tần suất. Key hiếm sau dòng 100 vẫn còn trong dữ liệu nhưng không có cột riêng.
- Object và mảng lồng nhau hiển thị dưới dạng snippet JSON bị cắt trong ô. Click vào dòng để xem JSON đầy đủ đã làm đẹp.
Lưu ý thường gặp
- Mảng JSON ≠ JSONL. Nếu file trông như
[{...}, {...}, {...}]với dấu phẩy giữa các đối tượng, đó là mảng JSON, không phải JSONL. Bỏ ngoặc ngoài và thay dấu phẩy bằng dòng mới — hoặc dùng viewer JSON. - JSON pretty-printed không phải JSONL. Nếu mỗi "đối tượng" trải dài nhiều dòng, parser sẽ thấy mảnh vỡ. JSONL nghiêm ngặt một đối tượng mỗi dòng.
- Dòng có shape hỗn hợp ổn nhưng lộn xộn. Nếu một nửa dòng có
contentvà nửa kia cótext, bạn sẽ có hai cột và nhiều ô trống. Thường là điều bạn muốn; đôi khi chỉ ra bug cleanup dữ liệu. - File rất lớn. Tất cả được parse trong memory; ~50–100 MB ổn trên laptop hiện đại, vượt qua thì chậm. Cho log nhiều GB, dùng công cụ CLI streaming.
- Riêng tư. File không bao giờ rời trang. FileReader đọc byte vào memory JS; không có request mạng.