tigtools

Trình kiểm tra JSON

Dán JSON để kiểm tra cú pháp theo tiêu chuẩn JSON. Lỗi được đánh dấu chính xác kèm lời giải thích dễ hiểu.

Chạy ngay trên trình duyệt Không cần đăng ký

Kết quả sẽ xuất hiện tại đây ngay khi bạn dán JSON.

Cách sử dụng

  1. Dán JSON vào khung, mở một tệp hoặc nhấn “Thử ví dụ” để xem báo cáo lỗi.
  2. Xem kết quả: thông báo màu xanh lá cây nếu JSON hợp lệ, hoặc lỗi đầu tiên cùng dòng, cột và dấu chỉ vị trí lỗi.
  3. Sửa lỗi theo gợi ý rồi kiểm tra lại; kết quả sẽ cập nhật khi bạn nhập.
  4. Nếu JSON hợp lệ, hãy xem thống kê: kiểu dữ liệu gốc, số lượng khóa, độ sâu lồng nhau và kích thước tính bằng byte.

Cách hoạt động

Trình xác thực kiểm tra cú pháp theo tiêu chuẩn JSON (RFC 8259 / ECMA-404) bằng trình phân tích JSON tích hợp trong trình duyệt. Vì vậy, tài liệu vượt qua bước kiểm tra này cũng được JSON.parse của JavaScript và các trình phân tích tuân thủ tiêu chuẩn trong những ngôn ngữ khác chấp nhận. Nếu có lỗi phân tích cú pháp, bộ kiểm tra nghiêm ngặt được viết riêng cho công cụ này sẽ duyệt văn bản một lần để tìm lỗi đầu tiên cùng chính xác dòng và cột, sau đó hiển thị dòng đó với dấu ^ bên dưới vị trí lỗi.

Các gợi ý tập trung vào những lỗi thường gặp khi tự viết JSON hoặc sao chép từ JavaScript: dấu phẩy sau phần tử cuối cùng, chuỗi dùng dấu nháy đơn, khóa không đặt trong dấu ngoặc kép, chú thích // hoặc /* */, các giá trị như NaN, Infinity hoặc undefined, ngắt dòng thô bên trong chuỗi và hai tài liệu JSON được dán nối tiếp nhau (như trong tệp JSON Lines). Công cụ chỉ báo lỗi đầu tiên vì một lỗi thường khiến các phần sau bị hiểu sai.

Công cụ chỉ kiểm tra cú pháp. Công cụ không xác thực theo JSON Schema nên không thể cho biết một trường bắt buộc có bị thiếu hay không. Công cụ cũng không cảnh báo về khóa trùng lặp: tiêu chuẩn cho phép các khóa này và hầu hết trình phân tích sẽ giữ lại giá trị cuối cùng. Thống kê đếm khóa trong mọi đối tượng ở tất cả các cấp; độ sâu bằng 1 với một đối tượng hoặc mảng phẳng và tăng thêm 1 cho mỗi cấp lồng nhau.

Ví dụ

Cấu hình sao chép từ JavaScript

{name: 'demo', debug: true,} sẽ báo lỗi ở dòng 1, cột 2 với thông báo “Khóa đối tượng phải đặt trong dấu ngoặc kép”. Sau khi đặt khóa trong dấu ngoặc kép, lần kiểm tra tiếp theo sẽ chỉ đến chuỗi dùng dấu nháy đơn, rồi đến dấu phẩy thừa ở cuối.

Tệp nhật ký có một đối tượng trên mỗi dòng

Nếu dán hai dòng như {"id":1} và {"id":2}, công cụ sẽ báo “có thêm nội dung sau khi giá trị JSON kết thúc” ở dòng 2. Mỗi dòng riêng lẻ đều là JSON hợp lệ (JSON Lines), nhưng để dùng cả hai cùng nhau, bạn cần đặt chúng trong [ ] và phân cách bằng dấu phẩy.

Kiểm tra dữ liệu tải trọng API

Một phản hồi 2 MB được xác thực trong chốc lát và hiển thị Loại gốc: Array, 1.500 phần tử cấp cao nhất cùng độ sâu lồng nhau là 4 — giúp kiểm tra nhanh dữ liệu trước khi viết mã xử lý.

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

Công cụ có kiểm tra theo JSON Schema không?

Không. Công cụ chỉ kiểm tra văn bản có đúng cú pháp JSON hay không. Để kiểm tra các trường bắt buộc, kiểu dữ liệu hoặc định dạng, bạn cần dùng trình kiểm tra JSON Schema; công cụ này không có tính năng đó.

Tại sao chỉ hiển thị một lỗi?

Sau lỗi cú pháp đầu tiên, trình phân tích cú pháp không thể biết tác giả định viết gì, nên các “lỗi” tiếp theo thường là hệ quả của lỗi đầu tiên. Hãy sửa lỗi được báo; nếu còn lỗi khác, lỗi đó sẽ xuất hiện ngay.

Chú thích hoặc dấu phẩy ở cuối có bao giờ hợp lệ không?

Không hợp lệ trong JSON. Các định dạng như JSON5 và JSONC (được dùng trong tệp cài đặt của một số trình soạn thảo) cho phép những cú pháp này, nhưng trình phân tích JSON tiêu chuẩn sẽ từ chối, nên công cụ báo lỗi.

Một giá trị đơn như 42 hoặc "hello" có phải là JSON hợp lệ không?

Có. Kể từ RFC 7159, mọi giá trị JSON đều có thể làm giá trị gốc, không chỉ đối tượng và mảng. Một số công cụ và API cũ vẫn yêu cầu giá trị cấp cao nhất là đối tượng hoặc mảng.

Tại sao số cột có thể khác với trong trình soạn thảo của tôi?

Số cột được tính theo đơn vị mã UTF-16, giống cách JavaScript tính độ dài chuỗi. Emoji và một số ký tự hiếm được tính là hai đơn vị; tab được tính là một cột, dù trình soạn thảo có thể hiển thị rộng hơn.

Quyền riêng tư

Việc kiểm tra được thực hiện hoàn toàn trên trình duyệt của bạn. JSON bạn dán hoặc mở sẽ không được tải lên, lưu trữ hay đưa vào dữ liệu phân tích.