Cara menggunakan
- Tampal sampel JSON, atau klik Muatkan contoh.
- Tetapkan tajuk untuk skema akar.
- 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.