Kiểm tra JSON

Kiểm tra cú pháp và cấu trúc JSON

Thử ví dụ
Chạy cục bộ · An toàn để dán thông tin bí mật

Xác thực JSON là gì?

Xác thực JSON là quá trình kiểm tra xem một chuỗi văn bản có tuân thủ đặc tả JSON hay không. Một tài liệu JSON hợp lệ có cú pháp đúng: chuỗi được đặt trong dấu nháy đúng cách, không có dấu phẩy cuối, không có chú thích, và một phần tử gốc duy nhất. Xác thực cho bạn biết ngay lập tức liệu JSON có thể được phân tích hay không — và nếu không, chính xác vấn đề nằm ở đâu.

JSON hợp lệ
json
{
  "user": "alice",
  "age": 30,
  "active": true,
  "tags": ["admin", "editor"]
}
JSON không hợp lệ — dấu phẩy cuối
json
{
  "user": "alice",
  "age": 30,
}

Tại sao phải xác thực JSON?

JSON không hợp lệ sẽ âm thầm phá vỡ các API, bộ tải cấu hình và pipeline dữ liệu. Một dấu phẩy đặt sai có thể ngăn toàn bộ ứng dụng khởi động. Phát hiện những lỗi này trong giai đoạn phát triển — không phải trong môi trường production — là sự khác biệt giữa một lần phát hành suôn sẻ và một sự cố.

📍
Xác định chính xác vị trí lỗi
Bộ xác thực không chỉ cho bạn biết rằng JSON không hợp lệ mà còn xác định chính xác dòng và cột nơi lỗi xảy ra, để bạn có thể nhảy thẳng đến vấn đề.
Xác thực khi bạn gõ
Xác thực thời gian thực cung cấp phản hồi tức thì khi bạn chỉnh sửa. Bạn thấy lỗi biến mất khi sửa chúng — không cần nhấp nút hay chờ build.
🔍
Phân biệt cú pháp với logic
Xác thực JSON chỉ bắt lỗi cú pháp. Nó xác nhận rằng tài liệu có thể phân tích được, tách biệt với việc các giá trị có đúng về mặt ngữ nghĩa cho ứng dụng của bạn hay không.
🔒
Quyền riêng tư theo thiết kế
Tất cả xác thực chạy trong trình duyệt của bạn. Thông tin xác thực, khóa API và payload nhạy cảm không bao giờ được gửi đến máy chủ.

Lỗi xác thực JSON phổ biến

Bốn lỗi này chiếm phần lớn các trường hợp xác thực JSON thất bại:

Dấu phẩy cuối
Dấu phẩy sau mục cuối cùng trong một object hoặc array. Hợp lệ trong JavaScript nhưng bị cấm nghiêm ngặt trong JSON.
json
{ "a": 1, "b": 2, }
Chuỗi dấu nháy đơn
Dấu nháy đơn không hợp lệ trong JSON. Cả key lẫn giá trị đều phải dùng dấu nháy kép.
json
{ 'key': 'value' }
Undefined và NaN
undefined, NaN và Infinity là các giá trị JavaScript nhưng không phải JSON hợp lệ. Hãy dùng null hoặc chuỗi số thay thế.
json
{ "val": undefined }
Key không có dấu nháy
JSON yêu cầu tất cả key của object phải là chuỗi trong dấu nháy kép. Các định danh trần như trong object JavaScript không được phép.
json
{ key: "value" }

Các trường hợp sử dụng phổ biến

Xác minh hợp đồng API
Xác thực body request và response so với các hình dạng mong đợi để bắt các lỗi tích hợp trước khi chúng lên production.
QA file cấu hình
Xác thực package.json, tsconfig.json và các file cấu hình khác trước khi commit để đảm bảo chúng được phân tích đúng.
Xác thực pipeline dữ liệu
Kiểm tra rằng dữ liệu được nhập từ các nguồn bên ngoài hoặc upload của người dùng đúng về mặt cú pháp trước khi xử lý.
Kiểm tra trước trong CI/CD
Chạy xác thực JSON như một bước build để ngăn các file cấu hình không hợp lệ được triển khai.
Học tập và gỡ lỗi
Dùng bộ xác thực như một công cụ học tập để hiểu tại sao các mẫu cú pháp JSON cụ thể hợp lệ hay không hợp lệ.
QA JSON được tạo ra
Xác minh rằng JSON được tạo bởi các bộ tạo mã, template hoặc serializer được định dạng đúng trước khi sử dụng.

Câu hỏi thường gặp

Sự khác biệt giữa xác thực JSON và xác thực JSON Schema là gì?
Xác thực JSON (điều công cụ này làm) kiểm tra cú pháp — liệu tài liệu có phải JSON có thể phân tích hay không. Xác thực JSON Schema là một bước riêng biệt kiểm tra liệu các giá trị có tuân thủ một cấu trúc, kiểu và ràng buộc được định nghĩa hay không.
JSON5 hay JSONC có phải JSON hợp lệ không?
Không. JSON5 (cho phép dấu nháy đơn, chú thích, dấu phẩy cuối) và JSONC (cho phép chú thích) là các tập cha của JSON nhưng không phải JSON tiêu chuẩn hợp lệ. Công cụ này xác thực theo đặc tả JSON nghiêm ngặt (RFC 8259).
Tại sao JSON của tôi không phân tích được dù trông có vẻ đúng?
Các nguyên nhân ẩn phổ biến nhất là: dấu phẩy cuối sau thuộc tính cuối cùng, dấu thứ tự byte (BOM) ở đầu file, hoặc chuỗi dấu nháy đơn. Dán JSON của bạn vào bộ xác thực để xác định vị trí chính xác.
JSON có thể chứa chú thích không?
Không — đặc tả JSON (RFC 8259) cấm chú thích một cách rõ ràng. Nếu bạn cần chú thích trong file cấu hình, hãy dùng JSONC hoặc JSON5 cục bộ, sau đó loại bỏ chú thích trước khi serialize.
Giá trị gốc JSON hợp lệ là gì?
Bất kỳ giá trị JSON nào cũng có thể là gốc: một object {}, một array [], một chuỗi, một số, true, false hoặc null. Trong thực tế hầu hết các API dùng object hoặc array ở gốc, nhưng cả sáu kiểu đều hợp lệ về mặt cú pháp.