Tạo JSON Schema

Dán JSON bên trái — lược đồ hiện ra bên phải, ngay khi bạn gõ.

JSON Schema

Cách sử dụng

  1. Dán một tài liệu JSON mẫu vào bên trái — object, mảng hoặc một giá trị đơn. Lược đồ được tạo trực tiếp ngay khi bạn gõ.
  2. Chọn phiên bản lược đồ (Draft 7 hoặc 2020-12), và bật/tắt nhận diện định dạng chuỗi, giá trị ví dụ, cùng việc mọi thuộc tính có bắt buộc hay không.
  3. Sao chép hoặc tải kết quả dưới dạng schema.json. Không gì được tải lên: toàn bộ tài liệu được phân tích trong trình duyệt của bạn.

Ví dụ

JSON mẫu

{
  "id": 42,
  "name": "Nguyễn Văn Minh",
  "email": "minh@example.com",
  "active": true,
  "tags": ["admin", "editor"],
  "profile": { "score": 4.5, "verified": false }
}

JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" },
    "tags": { "type": "array", "items": { "type": "string" } },
    "profile": {
      "type": "object",
      "properties": {
        "score": { "type": "number" },
        "verified": { "type": "boolean" }
      },
      "required": ["score", "verified"],
      "additionalProperties": false
    }
  },
  "required": ["id", "name", "email", "active", "tags", "profile"],
  "additionalProperties": false
}

Tạo với quy tắc mặc định: Draft 7, bật định dạng, mọi thuộc tính đều bắt buộc. Chuỗi email được gắn gợi ý định dạng; số nguyên giữ chính xác, và object profile lồng nhau trở thành lược đồ object riêng.

Quy tắc, giới hạn và các vấn đề đã biết

  • Kiểu được suy ra từ mẫu: object, array, string, integer, number, boolean, null. Các phần tử mảng được gộp — object trong các phần tử hợp nhất khóa của chúng, và khóa thiếu ở một số phần tử không bị đánh dấu bắt buộc.
  • Các kiểu hỗn hợp trong cùng một mảng trở thành anyOf; mảng rỗng cho ra type:array không có items (không biết kiểu phần tử từ mẫu).
  • Định dạng chuỗi (email, UUID, URI, date, date-time) được đoán từ giá trị — đó là gợi ý, không phải kiểm tra mọi giá trị có thể. Tắt bằng công tắc.
  • Khóa trùng giữ giá trị cuối cùng, như JSON.parse. Chỉ nhận JSON nghiêm ngặt (RFC 8259): chú thích, dấu phẩy thừa và dấu nháy đơn bị từ chối kèm thông báo dòng/cột.
  • Lược đồ là JSON chuẩn, nên các từ khóa và kết quả không bao giờ đổi theo ngôn ngữ của trang. Giá trị ví dụ được dựng lại theo kiểu gốc, nên một số nguyên cực lớn (ví dụ 12345678901234567890) có thể bị làm tròn chỉ trong phần ví dụ.
  • Giới hạn: 1.000.000 ký tự và 512 cấp lồng. Vượt một trong hai giới hạn, bạn nhận lỗi chứ không bao giờ nhận kết quả bị cắt. Tải tệp chỉ đọc tệp cục bộ — không gì được tải lên.

Những việc thường cần làm tiếp sau khi đã có lược đồ.