Gunakan generator JSON Schema online ini untuk membuat definisi schema dari data JSON sample Anda untuk validasi, dokumentasi, dan kontrak API.
Langkah 1 – Sediakan sample JSON Anda
- Tempel objek atau array JSON yang representatif ke editor kiri.
- Gunakan data produksi nyata agar schema merefleksikan struktur data Anda dengan akurat.
- Sertakan contoh semua kemungkinan nilai field dan struktur bersarang.
Langkah 2 – Tinjau schema yang dihasilkan
- Schema muncul di kanan dengan tipe yang disimpulkan, field wajib, dan definisi struktur.
- Periksa apakah item array, objek bersarang, dan tipe properti sesuai harapan Anda.
- Pastikan field opsional vs wajib teridentifikasi dengan benar.
Langkah 3 – Sesuaikan schema (opsional)
- Salin schema yang dihasilkan dan tambahkan aturan validasi, deskripsi, atau constraint kustom.
- Tambahkan
enum nilai, minLength/maxLength, atau pattern regex sesuai kebutuhan. - Definisikan
oneOf atau anyOf untuk union type.
Langkah 4 – Gunakan schema
- Unduh atau salin schema untuk digunakan dengan JSON validator, alat dokumentasi API, atau code generator.
- Integrasikan dengan library validasi seperti Ajv (JavaScript), jsonschema (Python), atau alat serupa.
- Referensikan schema di spesifikasi OpenAPI/Swagger atau gunakan untuk menghasilkan kode yang type-safe.
Tips cepat untuk pembuatan schema
- Selalu validasi schema yang dihasilkan dengan JSON validator atau library runtime Anda sebelum digunakan di produksi.
- Gunakan data contoh yang realistis agar generator online dapat menyimpulkan tipe dan properti wajib dengan benar.
- Simpan satu schema kanonis per payload (misalnya request/response API) agar tidak terjadi drift antar environment.
Catatan dukungan keyword schema
Jika Anda menambahkan keyword lanjutan seperti $ref, anyOf, oneOf, atau allOf, validasi dengan validator JSON Schema penuh (misalnya Ajv) dan pertimbangkan untuk melakukan dereference schema sebelum menghasilkan data mock.
Contoh: JSON ke JSON Schema
// JSON input
{
"id": 1,
"name": "Maeve Winters",
"email": "[email protected]",
"active": true,
"tags": ["developer", "backend"]
}
// Generated JSON Schema (simplified)
{
"type": "object",
"properties": {
"id": { "type": "number" },
"name": { "type": "string" },
"email": { "type": "string" },
"active": { "type": "boolean" },
"tags": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["id", "name", "email", "active", "tags"]
}