Trang chủ › Bài viết › Sửa lỗi cú pháp JSON
Lập trình viên & Mã nguồn

Cách sửa lỗi cú pháp JSON phổ biến: Dấu phẩy thừa, dấu ngoặc và chuẩn RFC 8259

Ngày xuất bản: 11 tháng 10, 2026 • Cập nhật: 17 tháng 10, 2026 • Tác giả: Đội ngũ Kỹ thuật GoToolstack • Xác thực: Công cụ Định dạng JSON GoToolstack
Định dạng và gỡ lỗi JSON chuyên nghiệp: Kiểm tra cú pháp theo chuẩn RFC 8259, đánh dấu chính xác dòng và cột bị lỗi, làm đẹp cấu trúc (beautify) và thu gọn (minify) ngay trong trình duyệt của bạn.
Mở công cụ Định dạng JSON
Mục lục nội dung
  1. Tiêu chuẩn RFC 8259 và sự khắt khe của định dạng JSON
  2. Bốn lỗi cú pháp JSON phổ biến nhất và cách khắc phục
  3. Cách định vị lỗi theo dòng và cột từ vị trí byte (Position Offset)
  4. Checklist kiểm tra nhanh tính hợp lệ của tài liệu JSON

1. Tiêu chuẩn RFC 8259 và sự khắt khe của định dạng JSON

Định dạng JSON (JavaScript Object Notation) được chuẩn hóa chính thức qua tài liệu RFC 8259 của IETF. Mặc dù có nguồn gốc từ cú pháp đối tượng của ngôn ngữ JavaScript, JSON là một định dạng trao đổi dữ liệu độc lập và tuân thủ các quy tắc ngữ pháp cực kỳ nghiêm ngặt mà JavaScript thông thường có thể bỏ qua.

Khi gọi hàm JSON.parse(), bất kỳ sai lệch nào dù chỉ một ký tự đơn lẻ cũng sẽ khiến trình phân tích cú pháp ném ra ngoại lệ SyntaxError và dừng toàn bộ quá trình thực thi chương trình.

2. Bốn lỗi cú pháp JSON phổ biến nhất và cách khắc phục

Lỗi 1: Dấu phẩy thừa ở cuối mảng hoặc đối tượng (Trailing Commas)

Trong JavaScript hiện đại (ES5+), việc để dấu phẩy ở phần tử cuối cùng là hoàn toàn hợp lệ. Tuy nhiên, theo mục 4 và 5 của chuẩn RFC 8259, dấu phẩy chỉ đóng vai trò phân cách giữa các phần tử. Dấu phẩy cuối cùng không được phép xuất hiện:

Ví dụ sai và sửa đúng
// ❌ SAI: Gây lỗi "Unexpected token } in JSON at position..."
{
  "name": "GoToolstack",
  "active": true,
}

// ✅ ĐÚNG:
{
  "name": "GoToolstack",
  "active": true
}

Lỗi 2: Sử dụng dấu nháy đơn thay vì dấu nháy kép

Tất cả các khóa (keys) và giá trị chuỗi (string values) trong JSON bắt buộc phải được bao bọc bởi cặp dấu nháy kép tiêu chuẩn (ASCII 34: "..."). Dấu nháy đơn ('...') hoặc dấu backtick (`...`) hoàn toàn không hợp lệ trong JSON.

Lỗi 3: Ký tự điều khiển và escape sequence chưa được xử lý

Các chuỗi ký tự chứa ngắt dòng thực tế (literal newline), ký tự tab, hoặc dấu gạch chéo ngược (backslash) chưa được escape sẽ làm hỏng trình đọc. Bạn phải thay thế ngắt dòng bằng \n, dấu tab bằng \t và dấu backslash bằng \\.

Lỗi 4: Vấn đề mất độ chính xác với số nguyên lớn (BigInt Precision)

Trong JavaScript, kiểu số tiêu chuẩn tuân theo định dạng dấu phẩy động 64-bit IEEE 754, với giới hạn số nguyên an toàn tối đa là Number.MAX_SAFE_INTEGER ($2^{53} - 1 = 9,007,199,254,740,991$).

Khi làm việc với các hệ thống phân tán sử dụng mã định danh Snowflake ID 64-bit (chẳng hạn như ID bài đăng của Twitter hoặc Discord), việc đọc trực tiếp chuỗi số dài hơn 16 chữ số dưới dạng số học trong JSON sẽ làm tròn và biến dạng vài chữ số cuối. Giải pháp chuẩn mực là đóng gói các ID số nguyên lớn này dưới dạng chuỗi văn bản (String).

3. Cách định vị lỗi theo dòng và cột từ vị trí byte (Position Offset)

Thông báo lỗi mặc định của JSON.parse() thường chỉ cung cấp vị trí byte tổng thể, ví dụ: Unexpected token '}' at position 148. Để giúp lập trình viên tìm ra lỗi ngay lập tức, công cụ JSON của GoToolstack tự động quét qua chuỗi nguồn, phân chia các ký tự xuống dòng (\n) để chuyển đổi vị trí số nguyên thành tọa độ Dòng X, Cột Y trực quan.

4. Checklist kiểm tra nhanh tính hợp lệ của tài liệu JSON

  • Mọi tên trường (key) đều có dấu nháy kép "..." bao quanh.
  • Không có dấu phẩy thừa đứng trước dấu đóng ngoặc nhọn } hoặc đóng ngoặc vuông ].
  • Giá trị boolean được viết bằng chữ thường: true hoặc false (không dùng True hay FALSE).
  • Giá trị rỗng được định nghĩa bằng null (JSON không hỗ trợ giá trị chưa khởi tạo hoặc hàm function).