Validator Skema JSON
Rekomendasi Terkait
Fitur
- Validasi standar Draft-07: sepenuhnya mengikuti spesifikasi JSON Schema Draft-07, mendukung validasi aturan dasar komprehensif termasuk tipe, field wajib, properti, regex, format, dan enum
- Logika kombinasi kuat: mendukung kata kunci kombinasi lanjutan seperti allOf, anyOf, oneOf, not — dengan mudah menangani struktur bersarang kompleks dan skenario validasi multi-kendala
- Pelokasian error presisi: menyediakan path error detail dan pesan error semantik, membantu developer dan tester dengan cepat melokalisasi konflik kontrak API dan anomali struktur data
- Pengujian kontrak API: sangat cocok untuk debugging antarmuka frontend-backend dan pengujian kontrak otomatis, memastikan data respons aktual secara ketat cocok dengan skema yang didefinisikan dalam dokumentasi API
- Pemrosesan lokal cepat: komputasi murni sisi browser, tidak perlu upload ke server, memastikan struktur data bisnis sensitif dan privasi data pengujian dengan pemrosesan ultra-cepat tanpa latensi
Pertanyaan Umum
Bagaimana cara memvalidasi data respons API menggunakan JSON Schema?
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.
Standar dan aturan validasi JSON Schema apa saja yang didukung?
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).
Bagaimana cara cepat melokalisasi error saat validasi gagal?
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.
Bagaimana menggunakan JSON Schema untuk tata kelola data otomatis?
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.
Apakah validasi Skema JSON online akan mengekspos data pribadi saya?
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.
Panduan Kata Kunci JSON Schema
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. |
Perbandingan Versi JSON Schema
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 |
- Kompres JSON
- CSV ke JSON
- JSON ke CSV
- JSON Diff
- JSON Escape / Unescape
- Meratakan JSON
- Pemformat JSON
- Generator JSON
- Kueri JSONPath
- Penggabungan JSON
- Perbaikan JSON
- Validator Skema JSON
- Urutkan JSON
- JSON Stringify
- JSON ke HTML
- JSON ke Java
- JSON ke Markdown
- JSON ke SQL
- JSON ke TOML
- JSON ke TypeScript
- XML ke JSON
- Ubah JSON ke XML
- YAML ke JSON
- JSON → YAML
- JSON ke Python
- JSON ke Go
- JSON ke Rust
- JSON ke Swift
- JSON ke C#
- JSON ke C++
- JSON ke PHP