Chỉ cần dán định nghĩa JSON Schema mong đợi của bạn bên trái và dữ liệu phản hồi API thực tế bên phải. Công cụ tự động so sánh cả hai cấu trúc, xác thực chính xác kiểu dữ liệu, trường bắt buộc, pattern regex và nhiều hơn nữa. Đây là bước thiết yếu cho kiểm thử hợp đồng API và đảm bảo tính nhất quán cấu trúc dữ liệu frontend-backend.
Công cụ tuân thủ hoàn toàn tiêu chuẩn JSON Schema Draft-07. Hỗ trợ kiểm tra kiểu cơ bản (type), trường bắt buộc (required), định nghĩa thuộc tính (properties), khớp pattern regex (pattern), xác thực định dạng (format), giá trị enum (enum) và xác thực logic kết hợp mạnh mẽ (allOf, anyOf, oneOf, not).
Khi dữ liệu JSON không khớp với schema, công cụ tạo báo cáo lỗi cực kỳ chi tiết. Nó chỉ chính xác đường dẫn JSON lỗi, loại lỗi cụ thể (như không khớp kiểu hoặc thiếu trường bắt buộc) và quy tắc schema tương ứng — cải thiện đáng kể hiệu quả gỡ lỗi cho phát triển backend và làm sạch dữ liệu.
Trước khi làm sạch dữ liệu ETL hoặc nhập dữ liệu, bạn có thể sử dụng công cụ này để xác minh dữ liệu có tuân thủ đặc tả schema được định nghĩa trước không. Điều này chặn hiệu quả dữ liệu bẩn và bất thường, đảm bảo chất lượng dữ liệu đi vào cơ sở dữ liệu hoặc hệ thống downstream — bước quan trọng trong xây dựng pipeline dữ liệu mạnh mẽ.
Không. Toàn bộ xử lý JSON Schema Validator diễn ra hoàn toàn local trong trình duyệt của bạn. Dù là cấu trúc dữ liệu API doanh nghiệp hay dữ liệu kinh doanh cá nhân, không gì bao giờ được tải lên bất kỳ máy chủ nào, đảm bảo bảo vệ quyền riêng tư dữ liệu ở cấp enterprise.
Bảng dưới đây liệt kê các từ khóa xác thực được sử dụng phổ biến nhất trong đặc tả JSON Schema, được tổ chức theo danh mục để tham khảo nhanh.
| Từ khóa | Mô tả |
|---|---|
| Kiểu Cơ Bản | |
type | Chỉ định kiểu dữ liệu: string, number, integer, boolean, array, object, null. Hỗ trợ kiểu đơn lẻ hoặc mảng các kiểu. |
| Xác Thực Đối Tượng | |
properties | Định nghĩa các lược đồ con cho thuộc tính đối tượng. |
required | Mảng chuỗi chỉ định những thuộc tính nào là bắt buộc. |
additionalProperties | Kiểm soát liệu các thuộc tính bổ sung không được định nghĩa trong properties có được phép hay không; có thể là false hoặc một lược đồ. |
propertyNames | Lược đồ mà tên thuộc tính phải khớp (thường sử dụng pattern regex). |
minProperties | Số lượng thuộc tính tối thiểu mà một đối tượng phải chứa. |
maxProperties | Số lượng thuộc tính tối đa mà một đối tượng có thể chứa. |
| Enum & Hằng Số | |
enum | Mảng các giá trị được phép; dữ liệu phải chính xác là một giá trị từ mảng. |
const | Giá trị hằng; dữ liệu phải bằng chính xác giá trị này. |
| Ràng Buộc Số | |
minimum | Giá trị số tối thiểu (bao gồm). |
maximum | Giá trị số tối đa (bao gồm). |
exclusiveMinimum | Giá trị phải lớn hơn một cách chặt chẽ (không bao gồm). |
exclusiveMaximum | Giá trị phải nhỏ hơn một cách chặt chẽ (không bao gồm). |
multipleOf | Giá trị phải là bội số của số được chỉ định. |
| Ràng Buộc Chuỗi | |
minLength | Độ dài chuỗi tối thiểu. |
maxLength | Độ dài chuỗi tối đa. |
pattern | Biểu thức chính quy; chuỗi phải khớp với mẫu này. |
format | Xác thực định dạng ngữ nghĩa: email, uri, date-time, uuid, ipv4, ipv6, hostname, v.v. |
| Ràng Buộc Mảng | |
items | Lược đồ cho các phần tử mảng (một lược đồ duy nhất áp dụng cho tất cả phần tử). |
minItems | Số lượng phần tử mảng tối thiểu. |
maxItems | Số lượng phần tử mảng tối đa. |
uniqueItems | Liệu các phần tử mảng có phải là duy nhất hay không. |
contains | Ít nhất một phần tử mảng phải khớp với lược đồ này. |
| Logic Tổ Hợp | |
allOf | Dữ liệu phải khớp với tất cả lược đồ con (AND logic). |
anyOf | Dữ liệu phải khớp với ít nhất một lược đồ con (OR logic). |
oneOf | Dữ liệu phải khớp với chính xác một lược đồ con (XOR). |
not | Dữ liệu KHÔNG được khớp với lược đồ này (NOT logic). |
| Xác Thực Có Điều Kiện | |
if | Lược đồ điều kiện; nếu dữ liệu khớp với if, phải thỏa mãn then; ngược lại phải thỏa mãn else. |
then | Lược đồ cần thỏa mãn khi điều kiện if đúng. |
else | Lược đồ cần thỏa mãn khi điều kiện if không đúng. |
| Tham Chiếu & Tái Sử Dụng | |
$ref | Tham chiếu đến các định nghĩa lược đồ khác; hỗ trợ tham chiếu cục bộ (#/$defs/xxx) và tham chiếu từ xa. |
$defs | Định nghĩa các lược đồ con có thể tái sử dụng (Draft 2019-09+; các phiên bản cũ sử dụng definitions). |
definitions | Từ khóa cho các lược đồ con có thể tái sử dụng trong Draft 4-7. |
| Siêu Dữ Liệu | |
title | Tiêu đề lược đồ (chú thích, không được xác thực). |
description | Mô tả lược đồ (chú thích, không được xác thực). |
default | Giá trị mặc định (chú thích, không được xác thực). |
examples | Mảng các giá trị ví dụ (chú thích, không được xác thực). |
$schema | Chỉ định phiên bản đặc tả JSON Schema đang được sử dụng. |
| Phụ Thuộc | |
dependentRequired | Phụ thuộc thuộc tính: khi một thuộc tính tồn tại, các thuộc tính khác cũng phải tồn tại (Draft 2019-09+). |
dependencies | Từ khóa phụ thuộc trong Draft 4-7 bao gồm cả phụ thuộc thuộc tính và phụ thuộc lược đồ. |
JSON Schema đã phát triển qua nhiều phiên bản Draft. Hiện tại Draft 7 là phiên bản được sử dụng rộng rãi nhất; Draft 2020-12 là bản phát hành ổn định mới nhất.
| Tính năng | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| Xác thực type | ✓ | ✓ | ✓ | ✓ | ✓ |
| Trường bắt buộc | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | boolean | number | number | number | number |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| pattern regex | ✓ | ✓ | ✓ | ✓ | ✓ |
| Xác thực format | ✓ | ✓ | ✓ | chú thích mặc định | chú thích mặc định |
| Mảng items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| Tham chiếu $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| Tái sử dụng $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| Tuple prefixItems | dạng mảng | dạng mảng | dạng mảng | dạng mảng | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |