Langkau ke kandungan
ToolMug

Penjana JSON ke JSON Schema

Tampal sampel JSON dan dapatkan JSON Schema yang menerangkannya — jenis, objek bersarang, item tatasusunan dan kunci yang wajib. Gunakannya sebagai titik permulaan untuk pengesahan, borang atau dokumentasi API.

Berjalan dalam pelayar anda — apa yang anda masukkan tidak dimuat naik

Cara menggunakan

  1. Tampal sampel JSON, atau klik Muatkan contoh.
  2. Tetapkan tajuk untuk skema akar.
  3. Salin atau muat turun skema, kemudian tambah kekangan seperti format, corak dan julat.

Penerangan pilihan

Nama jenis akar
Digunakan sebagai tajuk (title) skema.

Contoh

{"id": 1, "email": null} menjadi skema dengan "id": {"type": "integer"}, "email": {"type": "null"} dan kedua-dua kunci dalam required.

Contoh lanjut

Dua rekod pengguna, di mana hanya yang pertama mempunyai e-mel dan manager kadangkala null:

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

Dengan nama jenis akar ditetapkan kepada User, skema yang dijana ialah:

{
  "$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 ditinggalkan daripada required kerana rekod kedua tidak mempunyainya, dan manager menerima sama ada null atau objek kerana kedua-duanya muncul dalam sampel. Semakin pelbagai data sampel anda, semakin tepat skemanya — tampal beberapa rekod dan bukannya satu.

Kegunaan biasa

Mengesahkan input API. Muatkan skema ke dalam pengesah seperti Ajv (JavaScript) atau jsonschema (Python) dan tolak permintaan yang tidak sepadan.

Mendokumentasikan API. Tampal properties ke dalam bahagian OpenAPI components.schemas sebagai titik permulaan.

Autolengkap editor. VS Code dan IDE JetBrains boleh menggunakan JSON Schema untuk mencadangkan kunci dan menandakan kesilapan dalam fail konfigurasi JSON.

Soalan lazim

Kunci manakah yang ditandakan sebagai wajib?

Kunci yang wujud dalam setiap objek sampel. Apabila tatasusunan mengandungi objek dengan kunci yang berbeza, kunci yang tiada dalam sesetengah item tidak dimasukkan ke dalam required.

Bolehkah saya menggunakannya dengan OpenAPI?

OpenAPI 3.1 menggunakan JSON Schema 2020-12, jadi skema yang dijana sesuai diletakkan di bawah components/schemas. Untuk OpenAPI 3.0, gantikan tatasusunan jenis seperti ["string", "null"] dengan nullable true.

Adakah ia mengesan format seperti email atau date-time?

Tidak. Ia hanya menyimpulkan jenis. Tambah format, pattern, minimum dan kata kunci serupa secara manual jika perlu.

Adakah JSON saya dimuat naik?

Tidak. Jenis dijana dalam pelayar anda, jadi respons API dengan data sebenar kekal pada peranti anda.

Privasi

Alat ini berjalan sepenuhnya dalam pelayar anda. Fail dan teks anda diproses pada peranti anda dan tidak pernah dimuat naik ke pelayan kami.

Alat berkaitan