Cú pháp JSON: Quy tắc và Ví dụ
Mặc dù JSON được thiết kế đơn giản, nó có các quy tắc cú pháp nghiêm ngặt phải tuân theo chính xác. Một dấu phẩy đặt sai vị trí hoặc ký tự dấu ngoặc kép sai có thể làm cho toàn bộ JSON của bạn không hợp lệ. Hướng dẫn này bao gồm tất cả các quy tắc cú pháp bạn cần biết để viết JSON hợp lệ và nhanh chóng xác định lỗi khi chúng xảy ra.
Quy tắc cơ bản
Cú pháp JSON dựa trên một tập con của JavaScript, nhưng với các quy tắc nghiêm ngặt hơn đảm bảo khả năng tương thích đa nền tảng. Hiểu các quy tắc này là cần thiết để làm việc hiệu quả với JSON. Quy tắc quan trọng nhất: tài liệu JSON phải sử dụng dấu ngoặc kép cho chuỗi, không bao giờ dấu ngoặc đơn. Trong khi JavaScript cho phép cả 'xin chào' và "xin chào", JSON chỉ chấp nhận "xin chào". Tương tự, tất cả các khóa trong đối tượng JSON phải là chuỗi được bao bọc trong dấu ngoặc kép. Đối tượng JavaScript {name: "Minh"} là JavaScript hợp lệ nhưng JSON không hợp lệ; nó phải được viết là {"name": "Minh"}. Khoảng trắng trong JSON linh hoạt. Khoảng cách, tab và ngắt dòng có thể được thêm tự do giữa các token để dễ đọc mà không ảnh hưởng đến dữ liệu. JSON không có khái niệm về chú thích. Dấu phẩy kéo dài bị cấm nghiêm ngặt. JSON phân biệt chữ hoa chữ thường. Các giá trị boolean phải là chữ thường true và false, không phải True và False. Tương tự, null phải là chữ thường. Mã hóa phải là UTF-8 (ưu tiên), UTF-16 hoặc UTF-32.
Lỗi cú pháp phổ biến
Ngay cả các lập trình viên có kinh nghiệm cũng mắc lỗi cú pháp JSON. Lỗi dấu ngoặc đơn cực kỳ phổ biến trong số các lập trình viên đến từ JavaScript. Dấu phẩy kéo dài gây ra vô số lỗi phân tích cú pháp khi chỉnh sửa JSON. Các khóa không có dấu ngoặc kép hoạt động trong JavaScript nhưng không phải trong JSON. JSON không có cú pháp chú thích. Sử dụng các giá trị undefined hoặc NaN thất bại vì chúng không tồn tại trong JSON. Các dấu ngoặc không khớp dễ tạo ra trong JSON phức tạp. Lỗi chuỗi thoát xảy ra khi các ký tự đặc biệt trong chuỗi không được thoát đúng cách. Các định dạng số không chính xác như số 0 đứng đầu hoặc ký hiệu thập lục phân gây ra lỗi tinh vi.
Thử công cụ
Định Dạng JSON