Generator JSON Schema Online
Buat JSON Schema dari JSON apa pun. Sempurna untuk validasi API dan dokumentasi.
Mengapa menggunakannya
API terdokumentasi dan tervalidasi secara otomatis
Draft 2020-12
Menghasilkan skema yang kompatibel dengan standar IETF terbaru dan OpenAPI 3.1.
Privat
JSON diproses di browser Anda. Tidak pernah dikirim ke server mana pun.
Tipe disimpulkan
Mendeteksi string, angka, boolean, array, dan objek bertingkat secara otomatis.
Instan
Skema dihasilkan dalam milidetik. Tanpa pendaftaran, tanpa menunggu.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempelkan JSON Anda
Tempelkan objek JSON valid apa pun. Generator menganalisis struktur dan tipe setiap field.
Tinjau skema yang dihasilkan
JSON Schema muncul dengan tipe yang disimpulkan, properti wajib, dan deskripsi opsional.
Salin atau unduh skema
Gunakan skema dalam API, validator (ajv, zod), atau dokumentasi OpenAPI Anda. Salin dengan satu klik.
FAQ
Ada pertanyaan?
JSON Schema adalah kosakata yang memungkinkan anotasi dan validasi dokumen JSON, didefinisikan sebagai draft IETF. JSON Schema mendeskripsikan struktur yang diharapkan dari dokumen JSON: properti apa yang harus dimilikinya, tipe mereka (string, number, array, object), mana yang wajib ada, rentang nilai yang valid, pola regex untuk string, dan lainnya. JSON Schema merupakan standar de facto untuk mendokumentasikan dan memvalidasi REST API, kontrak data, dan konfigurasi aplikasi.
Versi terbaru adalah JSON Schema draft 2020-12, yang diterbitkan pada Desember 2020. Versi ini memperkenalkan peningkatan pada penggunaan $ref (kini dapat digabungkan dengan kata kunci lain), prefixItems untuk array tuple, dan kosakata unevaluatedProperties. Untuk kompatibilitas dengan alat yang lebih lama, draft-07 masih banyak digunakan. OpenAPI 3.1 mengadopsi JSON Schema draft 2020-12 sebagai subset, sehingga jika Anda menggunakan OpenAPI 3.1, Anda harus menggunakan 2020-12.
Dalam JSON Schema, kata kunci required adalah array string berisi nama properti yang harus ada dalam objek. Properti yang didefinisikan dalam properties tetapi tidak tercantum dalam required bersifat opsional secara implisit: properti tersebut dapat ada atau tidak tanpa menggagalkan validasi. Perbedaan ini sangat penting untuk API: field wajib yang hilang dalam permintaan harus mengembalikan error 400, sementara field opsional yang tidak ada cukup menggunakan nilai default.
Untuk array objek, gunakan type: array dengan items yang mengarah ke skema objek yang terkandung. Contohnya: { type: array, items: { type: object, properties: { ... } } }. Anda juga dapat mendefinisikan minItems dan maxItems untuk mengontrol panjang array, serta uniqueItems: true untuk mensyaratkan tidak ada duplikat. Untuk array panjang tetap dengan tipe heterogen, gunakan prefixItems (draft 2020-12) atau items sebagai array (draft-07).
$ref adalah kata kunci JSON Schema yang merujuk ke skema lain melalui URI, sehingga memungkinkan definisi yang dapat digunakan kembali. $ref digunakan bersama $defs (draft 2020-12) atau definitions (draft-07) untuk menghindari pengulangan struktur yang sama. Sebagai contoh, skema Address yang didefinisikan sekali dapat dirujuk dari billingAddress maupun shippingAddress. Hal ini mengurangi redundansi, menyederhanakan pemeliharaan, dan penting untuk skema OpenAPI dengan model bersama di berbagai endpoint.
Sejarah JSON Schema dan ekosistem validasi
JSON Schema diusulkan oleh Kris Zyp pada tahun 2009 sebagai spesifikasi informal yang diterbitkan di blog SitePen. Versi formal pertama sebagai draft IETF adalah draft-00 pada tahun 2010. Sejak saat itu terdapat banyak revisi (draft-01 hingga draft-07, kemudian 2019-09 dan 2020-12) tanpa menjadi RFC resmi, meskipun diadopsi secara luas sebagai standar de facto. Proses standardisasi IETF memerlukan implementasi referensi dan pengujian interoperabilitas, yang sedang diselesaikan secara aktif oleh komunitas JSON Schema.
Integrasi JSON Schema dengan OpenAPI sangat fundamental dalam pengembangan API modern. OpenAPI 2.0 (Swagger) menggunakan subset terbatas dari JSON Schema draft-04. OpenAPI 3.0 meningkatkan kompatibilitas namun mempertahankan ekstensi tersendiri seperti nullable. OpenAPI 3.1 mengadopsi JSON Schema draft 2020-12 secara penuh, menghilangkan perbedaan tersebut. Pustaka validasi utama meliputi ajv (Another JSON Schema Validator, JavaScript, dengan dukungan draft 2020-12), jsonschema (Python), json-schema-validator (Java), dan NJsonSchema (.NET).
Zod, TypeBox, dan Yup mewakili evolusi di mana skema dan validasi didefinisikan dalam TypeScript dengan inferensi tipe otomatis, menghasilkan JSON Schema sebagai output (bukan sebagai input). Pola schema-first dengan inferensi tipe ini menggantikan penggunaan JSON Schema secara langsung dalam proyek TypeScript modern, meskipun JSON Schema tetap sangat diperlukan untuk validasi lintas bahasa, kontrak API antar tim dengan tumpukan teknologi berbeda, dan dokumentasi event dalam arsitektur berbasis event (AsyncAPI).