Trình kiểm tra JSON
Dán bất kỳ tài liệu JSON nào và xem nó có phân tích sạch theo RFC 8259 hay không. Dữ liệu không hợp lệ sẽ trả về đúng vấn đề, dấu phẩy thừa sau phần tử mảng cuối, khóa không có dấu nháy, chuỗi chưa đóng, dấu nháy đơn nơi JSON đòi dấu nháy kép, chuỗi escape sai, kèm dòng và cột nơi trình phân tích bỏ cuộc. Hữu ích khi gỡ lỗi một phản hồi API, một tệp cấu hình, một package.json mà đồng đội sửa tay hay đầu ra của một trình sinh mã.
Cách kiểm tra JSON hoạt động
-
1
Dán JSON của bạn
Bỏ vào một payload, một tệp cấu hình hoặc một phản hồi API. Khoảng trắng thì ổn; tab và comment thì không (JSON thuần không có comment).
-
2
Phân tích bằng trình phân tích RFC 8259 nghiêm ngặt
Trình kiểm tra bác bỏ mọi thứ mà đặc tả cấm: dấu phẩy thừa, khóa không có dấu nháy, dấu nháy đơn, `undefined`, số hệ thập lục.
-
3
Đọc thông báo lỗi
Nếu thất bại, bạn nhận được thông báo của trình phân tích kèm vị trí gần đúng: đủ để đi thẳng tới ký tự đó.
-
4
Sửa và kiểm tra lại
Sửa vấn đề, dán lại, và xác nhận tài liệu hợp lệ trước khi commit hoặc gửi đi.
JSON nghiêm ngặt cho phép gì, và không cho phép gì
Có rất nhiều định dạng “gần giống JSON” lưu hành (JSON5, JSONC, HJSON, các biến thể kiểu YAML). Bản thân đặc tả JSON thì nhỏ và nghiêm ngặt; trình kiểm tra này cho bạn biết tài liệu của mình có sống sót qua một trình phân tích nghiêm ngặt hay không, đó là thứ mà phần lớn các hệ thống phía sau thực sự chạy.
Những quy tắc khiến hầu hết mọi người vấp
| Quy tắc | Hợp lệ | Không hợp lệ |
|---|---|---|
| Khóa phải là chuỗi trong dấu nháy kép | {"a": 1} |
{a: 1} |
| Chuỗi chỉ dùng dấu nháy kép | "hello" |
'hello' |
| Không có dấu phẩy thừa | [1, 2, 3] |
[1, 2, 3,] |
| Không có comment | (không có) | // comment hoặc /* */ |
Số: không có + đầu, không .5 |
0.5 |
+1, .5 |
| Chỉ các literal dành riêng | true, false, null |
undefined, NaN |
| Mã hóa UTF-8 | Chuỗi Unicode | Chuỗi byte không hợp lệ |
Lỗi thường gặp và ý nghĩa của chúng
- “Unexpected token
}”, bạn có một dấu phẩy thừa trước dấu ngoặc nhọn đóng. - “Expected property name”, khóa không có dấu nháy hoặc bạn quên đặt dấu nháy quanh khóa đầu tiên.
- “Unexpected end of input”, một dấu
{hoặc[mở chưa được đóng; hãy đếm số ngoặc. - “Bad control character”, một tab, ký tự xuống dòng hoặc byte điều khiển khác nằm trong một chuỗi literal. Hãy escape chúng thành
\t,\n, v.v. - “Duplicate key”, thực ra không phải lỗi theo đặc tả JSON (đặc tả nói NÊN duy nhất), nhưng nhiều trình kiểm tra cảnh báo. Trình kiểm tra báo nó như một thông báo, không phải lỗi nghiêm trọng.
Nếu bạn cần định dạng nới lỏng hơn
- JSON5 cho phép dấu phẩy thừa, comment và dấu nháy đơn. Dùng trình phân tích JSON5 nếu đó là định dạng đích của bạn.
- JSONC (JSON có comment) là thứ mà cấu hình VS Code dùng. Hãy loại bỏ comment trước khi phân tích nghiêm ngặt.
- YAML là một định dạng khác; đừng cho rằng nó “chỉ là JSON có thụt lề”.
Mẹo
- Kiểm tra trước khi commit. Một lỗi gõ trong
package.jsonhay một cấu hình CI làm hỏng cả bản build cho tới khi có người nhận ra. - In đẹp sau khi kiểm tra để diff dễ đọc khi review. Một tệp JSON một dòng thì hợp lệ nhưng review rất khổ.
- Với payload lớn, hãy kiểm tra theo luồng (ví dụ
jqtrên dòng lệnh). Phân tích trong trình duyệt đuối sức khi vượt vài MB.
Câu hỏi thường gặp
Công cụ này chỉ kiểm tra tính hợp lệ về cú pháp, nó có phải JSON đúng định dạng không? Với các quy tắc về cấu trúc (trường bắt buộc, giá trị enum, độ dài chuỗi), hãy dùng một trình kiểm tra JSON Schema. Hai bước này bổ trợ cho nhau: không có lý do gì chạy kiểm tra Schema trên một tài liệu ngay từ đầu đã không phải JSON hợp lệ.
Vì JSON tiêu chuẩn không có comment. // và /* */ là một phần mở rộng hợp lý (JSONC, JSON5) nhưng JSON thuần bác bỏ chúng. Hãy loại bỏ comment trước khi gửi tới một bên tiêu thụ nghiêm ngặt, hoặc áp dụng JSON5 trên toàn bộ stack của bạn.
Không hợp lệ trong JSON nghiêm ngặt. Đặc tả chỉ cho phép số hữu hạn. Hãy tuần tự hóa chúng thành chuỗi ("NaN", "Infinity") hoặc thành null, tùy cách bên tiêu thụ xử lý dữ liệu thiếu.
Không, việc kiểm tra chạy trong trình duyệt của bạn, nên payload bạn dán không bao giờ rời khỏi trang. An toàn cho các tệp cấu hình nhạy cảm và phản hồi API chứa thông tin đăng nhập.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Bảng tra cứu nhanh Markdown
Tài liệu Markdown thực dụng với bản xem trước thực tế và ví dụ có thể sao chép cho tiêu đề, danh sách, bảng, mã, liên kết, hình ảnh và cú pháp GFM.
Trình định dạng HTML
Định dạng HTML cục bộ trong trình duyệt với thụt lề hai hoặc bốn khoảng trắng. HTML không được tải lên hoặc xác thực.
Công cụ đổi PX sang PT
Đổi giá trị pixel CSS không âm sang điểm chữ theo công thức 1 px = 0,75 pt. Kết quả hiển thị tối đa bốn chữ số thập phân.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- JSON Validator [ID]
- Validador JSON [ES]
- Validateur JSON [FR]
- JSON 검사기 [KO]
- JSON-validator [NL]
- ตัวตรวจสอบความถูกต้องของ JSON [TH]
- مدقّق JSON [AR]
- JSON-Validator [DE]
- JSON-validator [SV]
- Walidator JSON [PL]
- Validador JSON [PT]
- JSONバリデーター [JA]
- Validator JSON [IT]
- Валидатор JSON [RU]
- JSON Doğrulayıcı [TR]
- JSON 校验器 [ZH]
- JSON Validator [EN]