JSON Schema Validator
Validasi dokumen JSON terhadap JSON Schema di browser Anda. Setiap kesalahan ditampilkan lengkap dengan path instance, keyword, dan path schema-nya.
| # | Path instance | Keyword | Pesan | Path schema |
|---|
Cara memvalidasi JSON terhadap schema
- Tempel schema Anda di JSON Schema dan data Anda di Dokumen JSON, atau pilih kasus siap pakai dari Contoh.
- Biarkan Draft pada Otomatis ($schema) untuk memakai versi yang disebutkan oleh
$schemadi schema, atau paksa draft 4, 7, 2019-09, atau 2020-12. - Validasi berjalan saat Anda mengetik; Validasi menjalankannya lagi. Format keduanya merapikan ulang indentasi kedua teks.
- Baca hasilnya: baris hijau jika dokumen valid, atau tabel kesalahan jika tidak.
Membaca tabel kesalahan
Setiap baris adalah satu aturan yang gagal:
- Path instance adalah JSON Pointer ke nilai yang gagal.
/roles/1adalah item kedua dariroles;(root)adalah seluruh dokumen. - Keyword adalah aturan schema yang gagal:
type,required,minimum,pattern,format,additionalProperties, dan seterusnya. - Pesan menjelaskan kegagalannya, misalnya
0 is less than 1.Pesan ini berasal dari pustaka validator dan ditulis dalam bahasa Inggris. - Path schema menunjuk ke keyword di dalam schema, seperti
/properties/id/minimum, sehingga Anda bisa menemukan aturannya dengan cepat.
Validasi tidak berhenti pada masalah pertama: semua kesalahan ditampilkan. Jika properti objek gagal, validator melaporkan ringkasan (“Property “id” does not match schema”) diikuti alasan yang tepat. Tampilkan hanya kesalahan yang paling spesifik menyembunyikan ringkasan tersebut; hapus centangnya untuk melihat rantai lengkapnya. Kesalahan di bawah anyOf dan oneOf selalu ditampilkan bersama kesalahan spesifik setiap cabangnya, karena hanya bermakna jika dilihat bersama.
Apa saja yang didukung
- Draft: 4, 6 (divalidasi dengan aturan draft 7), 7, 2019-09, dan 2020-12, termasuk
$defs/definitions,$reflokal,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedProperties, danunevaluatedItems. - Format:
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointer, danrelative-json-pointerdiperiksa. Format yang tidak dikenal diabaikan, sebagaimana diizinkan spesifikasi. - Referensi:
$refbisa menunjuk ke mana saja di dalam schema, termasuk ke$idyang dideklarasikannya. Schema jarak jauh tidak pernah diunduh; referensi ke URL lain dilaporkan sebagai tidak terselesaikan.
Alat ini memvalidasi dokumen terhadap schema Anda. Alat ini tidak memeriksa apakah schema itu sendiri mengikuti meta-schema, tetapi memperingatkan tentang nama type yang tidak dikenal seperti "strin" atau "int", salah ketik umum yang biasanya diabaikan diam-diam oleh validator.
Contoh-contohnya
- Profil pengguna (2020-12):
required, panjang string,format: email,enumdi dalamitems,uniqueItems, danadditionalProperties: false. - Daftar produk dengan $ref (draft-07): array yang item-nya mereferensikan
#/definitions/product, denganpatternuntuk SKU dan hargaexclusiveMinimum. - Konfigurasi dengan if/then (2019-09): sertifikat yang hanya wajib dalam mode HTTPS,
oneOfantara email dan URI, serta batas numerik.
Setiap contoh disertai dokumen yang sengaja berisi kesalahan, sehingga Anda bisa melihat seperti apa tampilan kesalahannya.
Pertanyaan yang sering diajukan
Apakah data saya diunggah?
Tidak. Schema dan dokumen divalidasi di browser Anda; tidak ada yang dikirim ke server.
Mengapa $ref di schema saya “unresolved”?
Validator hanya mengenal schema yang Anda tempel. $ref ke file atau URL lain tidak bisa diikuti; salin definisi yang dirujuk ke $defs dan arahkan ke #/$defs/… sebagai gantinya.
Draft mana yang sebaiknya dipakai?
Gunakan draft yang ditargetkan proyek Anda, dan deklarasikan dengan $schema. Untuk schema baru, 2020-12 adalah versi terkini; OpenAPI 3.1 juga memakainya.
Mengapa integer menolak 2.0?
Tidak menolak: JSON Schema menganggap 2.0 sebagai integer karena nilainya bulat. 2.5-lah yang gagal pada "type": "integer".
Apakah pesan kesalahan tersedia dalam bahasa Indonesia?
Label alat ini dalam bahasa Indonesia, tetapi pesan kesalahan dari validator ditulis dalam bahasa Inggris. Path instance, keyword, dan path schema tetap sama dalam bahasa apa pun.
Apakah alat ini berfungsi offline?
Ya. Setelah halaman dimuat dan Anda menjalankan validasi pertama (yang memuat validator), tidak diperlukan koneksi.
Alat terkait
- JSON Formatter dan Validator JSON formatter dan validator gratis untuk merapikan, minify, dan memeriksa JSON di browser Anda, dengan kesalahan sintaksis yang dilaporkan per baris dan kolom.
- JSONPath Tester Uji ekspresi JSONPath pada JSON Anda sendiri di browser. Filter, slice, recursive descent, path, dan JSON Pointer, dengan contoh-contoh siap pakai.
- Konverter JSON ke YAML Konversi JSON ke YAML dan YAML ke JSON di browser Anda, dengan dukungan anchor, merge key, dan file multi-dokumen. Tidak ada yang diunggah.