JSON5 và JSONC: JSON có chú thích
Cả hai biến thể đều tồn tại vì cấu hình do con người viết cần chú thích và dấu phẩy cuối, nhưng cú pháp và độ phủ hệ sinh thái của chúng khác nhau, nên chọn sai sẽ làm tắc nghẽn chuỗi công cụ của bạn.
JSON5, JSONC, JSON Lines và NDJSON giải quyết những nhu cầu thực tế như chú thích, dấu phẩy cuối và truyền dữ liệu dạng luồng, nhưng cũng mang theo vấn đề tương thích và lựa chọn của riêng chúng.
6 bài viếtCả hai biến thể đều tồn tại vì cấu hình do con người viết cần chú thích và dấu phẩy cuối, nhưng cú pháp và độ phủ hệ sinh thái của chúng khác nhau, nên chọn sai sẽ làm tắc nghẽn chuỗi công cụ của bạn.
Mỗi dòng một giá trị JSON mang lại khả năng ghi nối thêm, truyền luồng và cô lập hư hỏng trong một dòng; cái giá là thiếu cấu trúc tổng thể, nên việc kiểm tra phải diễn ra theo từng dòng.
RFC 7464 dùng ký tự phân tách 0x1E để truyền luồng các văn bản JSON mà bạn có thể đọc và ghi cùng lúc. Bài viết trình bày quy tắc, khác biệt so với NDJSON, và cách hiện thực tách-rồi-phân-tích.
Tệp cấu hình cần chú thích, ngày tháng và văn bản nhiều dòng, đó là những chỗ JSON thiếu. Hãy so sánh JSON, TOML, YAML và CSON, và xem chuyển đổi luôn làm mất những gì.
MessagePack, CBOR và BSON đều nén JSON thành byte. Hãy so sánh chi phí byte, cách xử lý int64 và dữ liệu nhị phân, rồi có một ranh giới rõ ràng cho việc khi nào chuyển đổi là đáng.
Ném cả tệp .jsonl vào JSON.parse rồi nhận lỗi gần như chưa bao giờ có nghĩa là tệp hỏng — mà nghĩa là cách đọc sai. Bài viết này bao gồm các cách chuẩn để kiểm tra và đọc JSONL từng dòng, các lệnh chuyển đổi hai chiều với mảng JSON, bảng sáu loại dòng lỗi và cách đúng để tiêu thụ NDJSON từ phản hồi HTTP dạng stream.