~/tools / JSON Schema Validator
JSON Schema Validator — Kiểm tra JSON theo JSON Schema
Kiểm tra dữ liệu JSON theo một JSON Schema và xem từng lỗi kèm đường dẫn và quy tắc không đạt. Hỗ trợ các từ khóa chính của Draft 2020-12. Hữu ích để kiểm tra đầu ra có cấu trúc của mô hình AI. Không có gì rời khỏi trình duyệt của bạn.
Theo JSON Schema Draft 2020-12 đối với các từ khóa được hỗ trợ. Chỉ đọc $ref bên trong cùng một schema.
Mọi thứ chạy trong trình duyệt của bạn. Schema và dữ liệu không được tải lên.
JSON Schema mô tả JSON hợp lệ trông như thế nào: kiểu dữ liệu, thuộc tính bắt buộc, giá trị và khoảng giá trị cho phép. Công cụ này kiểm tra một đoạn JSON theo schema và liệt kê mọi lỗi cùng vị trí trong dữ liệu và từ khóa schema không đạt. API AI có thể ràng buộc câu trả lời của mô hình theo schema, nhưng câu trả lời vẫn có thể sai ở phần giá trị, bị từ chối hoặc bị cắt giữa chừng, nên bạn vẫn nên tự kiểm tra. Những từ khóa mà công cụ không kiểm tra, chẳng hạn format, sẽ được liệt kê khi schema của bạn dùng đến, nên kết quả đạt không bao giờ yếu hơn vẻ ngoài của nó mà không được báo.
Trường hợp dùng
- Kiểm tra đầu ra có cấu trúc của mô hình AI có khớp với schema bạn đã đưa hay không
- Thử schema với vài mẫu hợp lệ và không hợp lệ trước khi dùng trong API
- Tìm thuộc tính nào trong một tài liệu JSON lớn vi phạm quy tắc
Cách dùng
- Dán schema vào bên trái và dữ liệu JSON vào bên phải, hoặc tải ví dụ.
- Đọc kết quả: đạt, hoặc danh sách lỗi kèm đường dẫn trong dữ liệu và quy tắc không đạt.
- Xem thông báo về các từ khóa chưa được kiểm tra, nếu có.
Schema kiểm tra gì, và không kiểm tra gì
- properties chỉ kiểm tra những thuộc tính có mặt. Một thuộc tính chỉ bắt buộc nếu tên của nó được liệt kê trong required, nên một thuộc tính không được liệt kê có thể vắng mặt.
- additionalProperties áp dụng cho những tên không khớp với properties lẫn patternProperties. Nếu bỏ qua, các thuộc tính thừa được cho phép.
- integer khớp với mọi số có phần thập phân bằng không.
- pattern là biểu thức chính quy ECMA-262 và không được neo: pattern b khớp với chuỗi abc. Hãy thêm ^ và $ khi toàn bộ chuỗi phải khớp.
- minLength và maxLength đếm ký tự theo định nghĩa của RFC 8259, nên một emoji được tính là một.
- format mặc định là chú thích, và việc kiểm tra nó là tùy chọn. Công cụ này không kiểm tra nó và sẽ báo khi schema dùng đến.
- Từ khóa không biết được coi là chú thích, nên một từ khóa viết sai chính tả như requierd bị bỏ qua và không làm schema thất bại.
Mảng: 2020-12 và các draft trước
| Draft | Schema cho các phần tử đầu | Schema cho phần còn lại |
|---|---|---|
| 2020-12 | prefixItems | items |
| draft-07 và cũ hơn | items dạng mảng | additionalItems |
Công cụ này đọc được cả hai dạng. Trong 2020-12, items: false thay cho additionalItems: false.
Các tính năng structured output của AI chấp nhận gì
Mỗi nhà cung cấp chỉ chấp nhận một tập con của JSON Schema, và ba bên ghi tài liệu theo ba cách khác nhau.
| Nhà cung cấp | Tài liệu nói gì |
|---|---|
| OpenAI | Gốc phải là một đối tượng. Mọi thuộc tính phải được liệt kê trong required (một giá trị tùy chọn được viết là một type cho phép cả null), và mọi đối tượng cần additionalProperties: false. allOf, not, dependentRequired, dependentSchemas và if/then/else không được hỗ trợ. |
| Anthropic | additionalProperties phải là false. Schema đệ quy, minimum, maximum và multipleOf, minLength và maxLength, và minItems của mảng khác 0 hoặc 1 không được hỗ trợ. Một tính năng không được hỗ trợ trả về lỗi 400. |
| Google Gemini | Chỉ hỗ trợ một tập con của JSON Schema. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains và maxContains bị loại bỏ và bỏ qua thay vì gây lỗi. |
Một schema đạt trình kiểm tra này vẫn có thể bị nhà cung cấp từ chối, hoặc chỉ được thực thi một phần, trong tính năng của họ. Hãy xem tài liệu của nhà cung cấp, và tự kiểm tra câu trả lời.
Hãy tự kiểm tra câu trả lời
- Google nói đầu ra có thể khớp schema mà vẫn sai về nghĩa, và bảo bạn kiểm tra các giá trị trong ứng dụng của mình.
- Anthropic lưu ý rằng một giá trị enum hoặc const có thể được trả về chỉ khác ở chữ hoa chữ thường, mà không có lỗi.
- OpenAI nói một lời từ chối không nhất thiết tuân theo schema, và một câu trả lời bị cắt bởi giới hạn token tối đa là chưa hoàn chỉnh.
- Anthropic nói một câu trả lời bị cắt bởi max_tokens có thể không khớp schema. Hãy kiểm tra vì sao mô hình dừng trước khi phân tích.
Nguồn (kiểm tra ngày 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output
Hỏi đáp
Công cụ theo phiên bản JSON Schema nào?
Draft 2020-12. Công cụ cũng đọc được dạng mảng cũ của draft-07, trong đó items có thể là một mảng và additionalItems áp dụng cho phần còn lại. Công cụ chấp nhận $ref trỏ tới các định nghĩa trong cùng schema ($defs hoặc definitions) và không tải schema bên ngoài.
Công cụ kiểm tra những từ khóa nào?
type, enum, const, các giới hạn của số và chuỗi, pattern, các từ khóa của mảng (items, prefixItems, minItems, maxItems, uniqueItems, contains), các từ khóa của đối tượng (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired và một số khác), allOf, anyOf, oneOf, not và if/then/else.
Công cụ không kiểm tra những gì?
format, unevaluatedProperties, unevaluatedItems, $dynamicRef và contentMediaType không được kiểm tra. JSON Schema mặc định coi format là chú thích (annotation), và việc kiểm tra nó là tùy chọn. Khi schema của bạn dùng một trong các từ khóa này, công cụ sẽ báo cho bạn.
Tại sao từ khóa viết sai chính tả không gây lỗi?
JSON Schema coi các từ khóa không biết là chú thích, nên lỗi gõ như requierd bị bỏ qua và schema vẫn đạt. Công cụ báo giá trị sai của một từ khóa mà nó biết, chẳng hạn một type không tồn tại, nhưng không thể biết bạn định viết từ nào khác.
Schema đạt ở đây có dùng được với structured outputs của nhà cung cấp AI không?
Chưa chắc. Mỗi nhà cung cấp chỉ hỗ trợ một tập con của JSON Schema. OpenAI yêu cầu mọi thuộc tính đều là required và additionalProperties phải là false, Anthropic không hỗ trợ giới hạn độ dài của số hoặc chuỗi, còn Gemini bỏ qua một số từ khóa. Xem ghi chú về từng nhà cung cấp bên dưới công cụ.
Dữ liệu của tôi có bị gửi lên máy chủ không?
Không. Cả schema lẫn dữ liệu đều được kiểm tra ngay trong trình duyệt của bạn.