Công cụ tạo JSON Schema (Draft 2020-12)

Tạo JSON Schema (draft 2020-12) từ JSON mẫu: kiểu dữ liệu, khóa bắt buộc, union nullable, phần tử mảng và định dạng chuỗi như email, date-time. Miễn phí.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

Tạo JSON Schema là gì?

Suy ra JSON Schema từ một tài liệu mẫu. Công cụ mô tả kiểu của từng thuộc tính, gộp các phần tử mảng thành một schema items, liệt kê khóa bắt buộc, đánh dấu giá trị nullable bằng union kiểu và có thể nhận diện các định dạng chuỗi phổ biến.

Cách sử dụng Tạo JSON Schema

  1. Dán JSON vào ô Dữ liệu JSON đầu vào, hoặc dùng Tải ví dụ hay Mở tệp.
  2. Nếu muốn, đặt Tiêu đề schema (tùy chọn).
  3. Bật/tắt Đánh dấu khóa là bắt buộc, Nhận diện định dạng chuỗi (email, date-time, uri…) và Không cho phép thuộc tính khác.
  4. Kết quả JSON Schema cập nhật ngay khi bạn gõ; dùng Sao chép hoặc Tải xuống.

Ví dụ

Đầu vào
{"id":1,"email":"a@b.co"}
Đầu ra
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "id",
    "email"
  ]
}

Khi nào nên dùng Tạo JSON Schema

Dùng làm điểm khởi đầu cho hợp đồng API, kiểm tra cấu hình hoặc sinh biểu mẫu. Schema suy ra từ một mẫu chỉ tốt bằng chính mẫu đó: hãy tự thêm các ràng buộc như minimum, enum hoặc pattern trước khi dùng để kiểm tra dữ liệu thật.

Tạo JSON Schema hoạt động như thế nào

Mẫu được duyệt đệ quy và mỗi vị trí ghi nhận các kiểu JSON đã gặp (integer, number, string, boolean, object, array, null). Số nguyên trộn với số thập phân trở thành number; nhiều kiểu trở thành mảng type như ["object", "null"]. Với mảng đối tượng, một thuộc tính chỉ bắt buộc khi mọi đối tượng đều có nó. Phần nhận diện định dạng kiểm tra chuỗi với các mẫu date-time, date, time, email, uuid, uri và ipv4, và chỉ thêm format khi mọi giá trị đều khớp. Kết quả khai báo $schema: https://json-schema.org/draft/2020-12/schema.

Các Trường Hợp Sử Dụng Phổ Biến

  • Tạo nhanh schema cho body của request API
  • Kiểm tra tệp cấu hình bằng ajv hoặc một bước kiểm tra CI
  • Mô tả cấu trúc payload webhook
  • Sinh biểu mẫu từ schema trong các công cụ hỗ trợ JSON Schema

Câu Hỏi Thường Gặp

Công cụ tạo schema theo draft nào?

Draft 2020-12, được khai báo bằng từ khóa $schema. Các từ khóa được dùng (type, properties, required, items, format, additionalProperties) cũng hợp lệ trong draft-07.

Thuộc tính tùy chọn được phát hiện thế nào?

Chỉ từ mảng đối tượng: nếu một khóa bị thiếu ở một số phần tử, nó không được đưa vào required. Với một đối tượng đơn lẻ, mọi khóa đều bắt buộc khi tùy chọn được bật.

Định dạng có được kiểm tra bắt buộc không?

Trong JSON Schema, format mặc định chỉ là chú thích; các trình kiểm tra như ajv cần bật kiểm tra định dạng (ajv-formats).

Bước tiếp theo nên làm

Khám phá thêm danh mục