Theo đặc tả Class JSONArray :
- Một dấu phụ, (dấu phẩy) có thể xuất hiện ngay trước dấu ngoặc đóng.
- Giá trị null sẽ được chèn khi có, (dấu phẩy).
Vì vậy, theo tôi hiểu, nó nên được phép viết:
[0,1,2,3,4,5,]
Nhưng điều có thể xảy ra là một số trình phân tích cú pháp sẽ trả về số 7 dưới dạng đếm vật phẩm (như IE8 như Daniel Earwicker đã chỉ ra) thay vì 6 như mong đợi.
Đã chỉnh sửa:
Tôi đã tìm thấy Trình xác thực JSON này xác nhận chuỗi JSON dựa trên RFC 4627 (Loại phương tiện ứng dụng / json cho Ký hiệu đối tượng JavaScript) và chống lại đặc tả ngôn ngữ JavaScript. Trên thực tế, ở đây một mảng có dấu phẩy được coi là hợp lệ chỉ dành cho JavaScript và không dành cho đặc tả RFC 4627.
Tuy nhiên, trong đặc tả RFC 4627 được nêu rằng:
2.3. Mảng
Một cấu trúc mảng được biểu diễn dưới dạng dấu ngoặc vuông bao quanh 0 hoặc nhiều giá trị (hoặc phần tử). Các yếu tố được phân tách bằng dấu phẩy.
array = begin-array [ value *( value-separator value ) ] end-array
Đối với tôi đây lại là một vấn đề giải thích. Nếu bạn viết rằng các phần tử được phân tách bằng dấu phẩy (không nêu rõ điều gì về các trường hợp đặc biệt, như phần tử cuối cùng), thì có thể hiểu theo cả hai cách.
PS RFC 4627 không phải là một tiêu chuẩn (như đã nêu rõ ràng) và đã bị RFC 7159 (đó là một tiêu chuẩn đề xuất) RFC 7159