Apa fungsinya
JSON Schema adalah kosakata untuk menggambarkan bentuk data JSON: properti apa yang wajib dimiliki objek, tipe setiap nilai, rentang dan pola yang diizinkan, panjang array, dan banyak lagi. API memakainya dalam spesifikasi OpenAPI, editor memakainya untuk pelengkapan otomatis di file konfigurasi, dan back-end memakainya untuk menolak permintaan yang salah.
Validator ini memeriksa dokumen JSON terhadap schema dan mencantumkan setiap masalah yang ditemukan. Setiap error menunjukkan lokasinya di data (JSON Pointer seperti /tags/1), pesan yang mudah dibaca, dan kata kunci schema yang gagal, sehingga Anda bisa cepat memperbaiki data atau schema. Mendukung draft 2020-12, 2019-09, draft-07, dan draft-04, termasuk $ref, $defs, allOf/anyOf/oneOf, if/then/else, unevaluatedProperties, dan pemeriksaan format.
Cara menggunakan
- Tempel data ke Data JSON dan schema ke JSON Schema, atau unggah file ke masing-masing sisi. Contoh memuat data pengguna dengan beberapa kesalahan yang disengaja.
- Hasil diperbarui saat Anda mengetik: lencana hijau jika data valid, jika tidak muncul jumlah error dan daftarnya.
- Biarkan Versi pada Otomatis untuk mengikuti
$schema, atau paksa versi tertentu. Matikan Laporkan semua error untuk berhenti di kegagalan pertama. - Salin error menyalin daftar sebagai teks biasa, untuk laporan bug atau tinjauan kode.
Jika salah satu sisi bukan JSON yang valid, pesan akan menyebutkan apakah masalahnya di data atau schema, beserta baris dan kolomnya.
Contoh
Dengan schema ini:
{
"type": "object",
"required": ["id"],
"properties": {
"id": { "type": "integer" },
"age": { "type": "integer", "minimum": 0 }
}
}
dokumen {"age": -1} menghasilkan dua error: di (root) properti wajib id tidak ada; di /age nilainya di bawah minimum 0.
Tips
Tambahkan "additionalProperties": false untuk menangkap nama properti yang salah ketik, yang jika tidak akan lolos diam-diam. Gunakan enum atau const untuk nilai tetap dan pattern untuk string seperti kode produk. Saat schema membesar, pindahkan bagian yang berulang ke $defs dan rujuk dengan $ref.
FAQ
› Versi JSON Schema mana saja yang didukung?
Draft 2020-12, 2019-09, draft-07 (yang juga mencakup draft-06), dan draft-04. Jika Versi diatur Otomatis, versi dibaca dari kata kunci $schema; schema tanpa $schema diperlakukan sebagai 2020-12.
› Apa arti path pada error?
Path pertama adalah JSON Pointer ke nilai dalam data Anda yang gagal, misalnya /items/2/price; (root) berarti seluruh dokumen. Baris abu-abu menunjukkan kata kunci yang gagal dan lokasinya di schema, misalnya minimum · #/properties/age/minimum.
› Apakah format seperti email dan date-time diperiksa?
Ya. Format umum divalidasi: date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex, json-pointer, dan lainnya. Format yang tidak dikenal diabaikan, sesuai izin spesifikasi.
› Bisakah schema merujuk file lain?
Rujukan di dalam schema yang sama berfungsi, misalnya $ref ke #/$defs/address. URL eksternal tidak diunduh karena tidak ada yang keluar dari browser Anda; tempel definisi yang dirujuk ke $defs.