- JSON5 là định dạng mở rộng của định dạng tệp JSON, được tạo ra để con người dễ trực tiếp viết và bảo trì hơn
- Không được dùng cho mục đích giao tiếp giữa các máy
- Bắt đầu từ năm 2012 và tính đến năm 2022 đã được tải xuống hơn 65 triệu lần mỗi tuần, thuộc nhóm 0,1% gói được phụ thuộc nhiều nhất trên npm
- Được áp dụng trong các dự án lớn như Chromium, Next.js, Babel, Retool, WebStorm
- Được hỗ trợ mặc định trên các nền tảng Apple như macOS và iOS
- Tính năng của JSON5
- Là tập siêu của JSON, bao gồm một phần cú pháp của ECMAScript 5.1
- Tệp JSON5 luôn là tệp ES5 hợp lệ
- Các tính năng ECMAScript 5.1 được mở rộng
- Đối tượng
- Khóa đối tượng có thể là
IdentifierName của ECMAScript 5.1
- Cho phép một dấu phẩy cuối duy nhất trong đối tượng
- Mảng
- Cho phép một dấu phẩy cuối duy nhất trong mảng
- Chuỗi
- Chuỗi có thể được bao bằng dấu nháy đơn
- Có thể trải dài trên nhiều dòng bằng cách escape ký tự xuống dòng
- Có thể chứa các ký tự escape
- Số
- Có thể biểu diễn ở hệ thập lục phân
- Có thể có dấu thập phân ở đầu hoặc cuối
- Có thể bao gồm số dương vô cực, âm vô cực và NaN theo IEEE 754
- Có thể bắt đầu bằng dấu cộng tường minh
- Chú thích
- Cho phép chú thích một dòng và nhiều dòng
- Khoảng trắng
- Cho phép thêm các ký tự khoảng trắng khác
- API
JSON5.parse(): Phân tích chuỗi JSON5 để tạo ra giá trị hoặc đối tượng JavaScript
JSON5.stringify(): Chuyển giá trị JavaScript thành chuỗi JSON5
- CLI
- Cung cấp CLI để chuyển JSON5 sang JSON hoặc kiểm tra cú pháp của tài liệu JSON5
- Khả năng tương thích ECMAScript
- JSON5 được thiết kế để tương thích hoàn toàn với ES5, nhưng các ký tự U+2028 và U+2029 không được phép trong ES5
- Từ ES2019, các ký tự này được cho phép nên JSON và JSON5 hoàn toàn tương thích với ES2019
- Giấy phép
- Được cung cấp theo giấy phép MIT.
2 bình luận
Những điều học được khi tạo ra JSON5: Hãy phớt lờ những kẻ ghét bỏ
Ý kiến trên Hacker News