Chuyển đến nội dung
ToolMug

Chuyển JSON sang JSON Schema

Dán một mẫu JSON để nhận JSON Schema mô tả nó — kiểu dữ liệu, object lồng nhau, phần tử mảng và khóa nào là bắt buộc. Dùng làm điểm khởi đầu cho việc validate, xây form hoặc viết tài liệu API.

Chạy trong trình duyệt — không có dữ liệu nào bạn nhập bị tải lên

Cách sử dụng

  1. Dán một mẫu JSON, hoặc nhấn Tải ví dụ.
  2. Đặt tiêu đề cho schema gốc.
  3. Sao chép hoặc tải schema xuống, sau đó thêm các ràng buộc như format, pattern và khoảng giá trị.

Giải thích tùy chọn

Tên kiểu gốc
Được dùng làm tiêu đề (title) của schema.

Ví dụ

{"id": 1, "email": null} trở thành một schema có "id": {"type": "integer"}, "email": {"type": "null"} và cả hai khóa nằm trong required.

Ví dụ

Hai bản ghi người dùng, trong đó chỉ bản ghi đầu tiên có email và manager đôi khi là null:

[
  { "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
  { "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]

Với tên kiểu gốc đặt là User, schema được tạo là:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "User",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "integer" },
      "name": { "type": "string" },
      "email": { "type": "string" },
      "tags": { "type": "array", "items": { "type": "string" } },
      "manager": {
        "anyOf": [
          { "type": "null" },
          { "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
        ]
      }
    },
    "required": ["id", "name", "tags", "manager"]
  }
}

email không nằm trong required vì bản ghi thứ hai không có nó, và manager chấp nhận null hoặc một đối tượng vì cả hai đều xuất hiện trong mẫu. Dữ liệu mẫu càng đa dạng, schema càng chính xác — hãy dán nhiều bản ghi thay vì một.

Các cách dùng phổ biến

Kiểm tra đầu vào API. Nạp schema vào một trình kiểm tra như Ajv (JavaScript) hoặc jsonschema (Python) và từ chối các yêu cầu không khớp.

Tài liệu hóa API. Dán các thuộc tính vào phần components.schemas của OpenAPI làm điểm xuất phát.

Tự động gợi ý trong trình soạn thảo. VS Code và các IDE của JetBrains có thể dùng JSON Schema để gợi ý khóa và đánh dấu lỗi trong các tệp cấu hình JSON.

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

Khóa nào được đánh dấu là bắt buộc?

Các khóa có mặt ở mọi object mẫu. Khi một mảng chứa các object có khóa khác nhau, khóa thiếu ở một số phần tử sẽ không nằm trong required.

Tôi có thể dùng schema này với OpenAPI không?

OpenAPI 3.1 dùng JSON Schema 2020-12, nên schema tạo ra đặt được vào components/schemas. Với OpenAPI 3.0, hãy đổi mảng kiểu như ["string", "null"] thành nullable true.

Công cụ có nhận diện được format như email hay date-time không?

Không. Công cụ chỉ suy ra kiểu dữ liệu. Hãy tự thêm format, pattern, minimum và các từ khóa tương tự khi cần.

JSON của tôi có bị tải lên không?

Không. Các kiểu dữ liệu được tạo ngay trong trình duyệt, nên phản hồi API chứa dữ liệu thật vẫn ở trên thiết bị của bạn.

Quyền riêng tư

Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Tệp và văn bản được xử lý ngay trên thiết bị và không bao giờ được tải lên máy chủ của chúng tôi.

Công cụ liên quan