Cukup tempel definisi skema JSON yang diharapkan di sebelah kiri dan JSON respons API aktual di sebelah kanan. Alat ini secara otomatis membandingkan kedua struktur, memvalidasi secara presisi tipe data, field wajib, pola regex, dan lainnya. Ini adalah langkah penting untuk pengujian kontrak API dan memastikan konsistensi struktur data frontend-backend.
Alat ini sepenuhnya mengikuti standar JSON Schema Draft-07. Mendukung pengecekan tipe dasar (type), field wajib (required), definisi properti (properties), pencocokan pola regex (pattern), validasi format (format), nilai enum (enum), dan validasi logika kombinasi yang kuat (allOf, anyOf, oneOf, not).
Saat data JSON tidak cocok dengan skema, alat ini menghasilkan laporan error yang sangat detail. Laporan secara presisi menunjukkan path JSON yang gagal, jenis error spesifik (seperti ketidakcocokan tipe atau field wajib yang hilang), dan aturan skema yang sesuai — sangat meningkatkan efisiensi debugging untuk pengembangan backend dan pembersihan data.
Sebelum pembersihan data ETL atau ingesti data, Anda dapat menggunakan alat ini untuk memverifikasi apakah data sesuai dengan spesifikasi skema yang telah ditentukan. Ini secara efektif mencegat data kotor dan anomali, memastikan kualitas data yang masuk ke database atau sistem hilir — langkah penting dalam membangun pipeline data yang tangguh.
Tidak. Semua pemrosesan Validator Skema JSON terjadi sepenuhnya di browser Anda secara lokal. Baik itu struktur data API inti perusahaan atau data bisnis pribadi, tidak ada yang pernah diunggah ke server mana pun, memastikan perlindungan privasi tingkat enterprise untuk data Anda.
Tabel di bawah ini mencantumkan kata kunci validasi yang paling umum digunakan dalam spesifikasi JSON Schema, disusun berdasarkan kategori untuk referensi cepat.
| Kata Kunci | Deskripsi |
|---|---|
| Tipe Dasar | |
type | Tentukan tipe data: string, number, integer, boolean, array, object, null. Mendukung tipe tunggal atau array tipe. |
| Validasi Objek | |
properties | Tentukan sub-skema untuk properti objek. |
required | Array string yang menentukan properti mana yang wajib ada. |
additionalProperties | Kontrol apakah properti tambahan yang tidak didefinisikan di properties diizinkan; bisa berupa false atau skema. |
propertyNames | Skema yang harus cocok dengan nama properti (biasanya menggunakan regex pattern). |
minProperties | Jumlah minimum properti yang harus dimiliki objek. |
maxProperties | Jumlah maksimum properti yang boleh dimiliki objek. |
| Enum dan Konstanta | |
enum | Array nilai yang diizinkan; data harus tepat salah satu nilai dari array. |
const | Nilai konstan; data harus sama persis dengan nilai ini. |
| Batasan Numerik | |
minimum | Nilai numerik minimum (inklusif). |
maximum | Nilai numerik maksimum (inklusif). |
exclusiveMinimum | Nilai harus benar-benar lebih besar dari (eksklusif). |
exclusiveMaximum | Nilai harus benar-benar lebih kecil dari (eksklusif). |
multipleOf | Nilai harus kelipatan dari angka yang ditentukan. |
| Batasan String | |
minLength | Panjang minimum string. |
maxLength | Panjang maksimum string. |
pattern | Ekspresi reguler; string harus cocok dengan pola ini. |
format | Validasi format semantik: email, uri, date-time, uuid, ipv4, ipv6, hostname, dll. |
| Batasan Array | |
items | Skema untuk elemen array (satu skema berlaku untuk semua elemen). |
minItems | Jumlah minimum elemen array. |
maxItems | Jumlah maksimum elemen array. |
uniqueItems | Apakah elemen array harus unik. |
contains | Setidaknya satu elemen array harus cocok dengan skema ini. |
| Logika Kombinasi | |
allOf | Data harus cocok dengan semua sub-skema (logika DAN). |
anyOf | Data harus cocok dengan setidaknya satu sub-skema (logika ATAU). |
oneOf | Data harus cocok dengan tepat satu sub-skema (XOR). |
not | Data TIDAK boleh cocok dengan skema ini (logika TIDAK). |
| Validasi Bersyarat | |
if | Skema bersyarat; jika data cocok dengan if, harus memenuhi then; jika tidak, harus memenuhi else. |
then | Skema yang harus dipenuhi saat kondisi if terpenuhi. |
else | Skema yang harus dipenuhi saat kondisi if tidak terpenuhi. |
| Referensi dan Penggunaan Ulang | |
$ref | Referensikan definisi skema lain; mendukung referensi lokal (#/$defs/xxx) dan referensi jarak jauh. |
$defs | Tentukan sub-skema yang dapat digunakan kembali (Draft 2019-09+; versi lama menggunakan definitions). |
definitions | Kata kunci untuk sub-skema yang dapat digunakan kembali di Draft 4-7. |
| Metadata | |
title | Judul skema (anotasi, tidak divalidasi). |
description | Deskripsi skema (anotasi, tidak divalidasi). |
default | Nilai default (anotasi, tidak divalidasi). |
examples | Array nilai contoh (anotasi, tidak divalidasi). |
$schema | Tentukan versi spesifikasi JSON Schema yang digunakan. |
| Dependensi | |
dependentRequired | Dependensi properti: ketika suatu properti ada, properti lain juga harus ada (Draft 2019-09+). |
dependencies | Kata kunci dependensi di Draft 4-7 yang mencakup dependensi properti dan skema. |
JSON Schema telah berkembang melalui beberapa versi Draft. Draft 7 saat ini merupakan versi yang paling banyak digunakan; Draft 2020-12 adalah rilis stabil terbaru.
| Fitur | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| validasi tipe | ✓ | ✓ | ✓ | ✓ | ✓ |
| field wajib | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maksimum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maksimum | boolean | angka | angka | angka | angka |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maksLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| pattern regex | ✓ | ✓ | ✓ | ✓ | ✓ |
| validasi format | ✓ | ✓ | ✓ | anotasi secara default | anotasi secara default |
| array items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maksItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| referensi $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| penggunaan ulang $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| tupel prefixItems | bentuk array | bentuk array | bentuk array | bentuk array | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |