Validator JSON Schema online: kesalahan lengkap dengan jalur
Dengan validator JSON Schema ini, Anda menempelkan skema dan data JSON lalu langsung melihat apakah keduanya cocok. Jika tidak, setiap kesalahan ditampilkan bersama jalur ke nilai yang gagal dan alasan yang mudah dibaca, misalnya $.users[0].email. Draft-07, 2019-09, dan 2020-12 didukung, dan kedua kotak tetap berada di perangkat Anda.
Validator JSON online dengan skema: langkah demi langkah
- Tempel skema Anda ke kotak Skema JSON (tertulis “Tempel skema JSON Anda di sini...”).
- Tempel data yang akan diperiksa ke kotak Data JSON.
- Baca Hasil. Hasil diperbarui saat Anda menempel, atau sekitar 300 milidetik setelah Anda berhenti mengetik, jadi tidak ada tombol yang perlu ditekan.
- Valid berwarna hijau dengan “Data JSON sesuai dengan skema.” berarti data lolos. “Tidak valid: 3 kesalahan” berwarna merah menampilkan setiap kegagalan dalam daftar.
- Perbaiki data (atau skema), dan hasilnya berubah selagi Anda mengedit.
Selama kedua kotak belum terisi, hasil menampilkan “Tempel skema dan data JSON untuk memeriksanya.” Jika salah satu kotak berisi teks yang bukan JSON, muncul kotak merah JSON tidak valid berisi alasannya dan “Baris X, kolom Y”, dan hasil memberi tahu kotak mana yang harus diperbaiki. Untuk merapikan dokumen yang berantakan lebih dulu, “Pemformat JSON” menampilkan baris dan kolom yang sama untuk JSON yang rusak.
Membaca JSON Schema error: jalur dan alasan
Setiap kesalahan terdiri dari dua bagian: jalur dan alasan. Jalur dimulai dari $, akar data Anda, lalu mengikuti nama properti dengan titik dan posisi array dalam tanda kurung siku, dihitung mulai dari 0. Contoh: skema meminta id berupa bilangan bulat minimal 1, email berformat email, dan tags tanpa duplikat; datanya {"id":"7","email":"ana@","tags":["a","a"]}. Hasilnya “Tidak valid: 3 kesalahan”:
$.id: Harus berupa sebuah bilangan bulat, tetapi ini adalah sebuah string.$.email: Harus cocok dengan format “email”.$.tags: Item [0] dan [1] identik, padahal setiap item harus berbeda.
Semua kesalahan ditampilkan, bukan hanya yang pertama, sehingga Anda bisa memperbaiki seluruh dokumen sekaligus. Setelah 100 kesalahan, daftar berhenti dengan baris seperti “dan 250 kesalahan lagi tidak ditampilkan”; angka pada judul tetap tepat. Jika properti wajib (required) tidak ada, kesalahan muncul di jalur objek yang seharusnya memuatnya, misalnya $.users[0]. Kata kunci yang lebih jarang (not, contains, propertyNames, dependentRequired, dan if/then/else) juga punya alasan sendiri yang jelas.
Mode ketat: additionalproperties false
Secara bawaan, sebuah skema mengizinkan properti tambahan: data dengan kolom nick yang tidak pernah disebut skema tetap lolos. Aktifkan Mode ketat (“Gagal jika data memiliki properti yang tidak tercantum di skema.”) untuk menangkap salah ketik dan sisa-sisa data. Dengan skema di atas dan data {"id":1,"email":"ana@example.com","nick":"x"}, hasilnya “Valid” saat mode mati, dan “Tidak valid: 1 kesalahan” di $ saat mode hidup: Properti tak terduga “nick”.
Di balik sakelar itu, alat ini menambahkan unevaluatedProperties: false ke skema akar dan ke setiap skema properti atau item yang menggambarkan objek, termasuk melalui $ref. Teks Anda di kotak tidak pernah diubah.
- Skema yang sudah menetapkan
additionalPropertiesatauunevaluatedPropertiestetap memakai pilihannya sendiri. {"type":"object"}bebas tanpapropertiestetap terbuka.- Cabang
allOf,anyOf, danoneOf, serta entri di$defs, tidak dikunci sendiri, sehingga cabang yang sejajar bisa mendeklarasikan properti masing-masing.
Versi JSON Schema, $ref, dan format
Alat ini membaca baris "$schema" pada skema Anda dan memeriksa data dengan aturan yang sesuai: http://json-schema.org/draft-07/schema# diperiksa sebagai draft-07, https://json-schema.org/draft/2019-09/schema sebagai 2019-09, dan https://json-schema.org/draft/2020-12/schema sebagai 2020-12. Tanpa "$schema", yang dipakai 2020-12, atau 2019-09 untuk sintaks lama seperti array pada items. Draft-04, draft-06, atau alamat lain tidak didukung, dan hasil menyebutkan alamat yang dideklarasikan skema. Ini penting karena beberapa kata kunci berubah antarversi: prefixItems milik 2020-12, dan definitions menjadi $defs di 2019-09. Kedua penulisan jalur rujukan berfungsi: #/$defs/name dan #/definitions/name.
$refhanya diikuti di dalam skema yang sama. Tidak ada yang diunduh, jadi rujukan jarak jauh sepertihttps://example.com/address.jsondilaporkan sebagai rujukan yang tidak ditentukan skema. Tempel skema itu ke$defsAnda dan arahkan$refke sana.formatdiperiksa, tidak diabaikan: email, date, date-time, uri, uuid, dan format umum lainnya gagal dengan “Harus cocok dengan format”.- Skema yang rusak menampilkan “Skema itu sendiri tidak valid” beserta masalah dan jalur yang menunjuk ke dalam skema, misalnya
"type": "strng". Data tidak diperiksa sampai skema diperbaiki. Pola yang bukan ekspresi reguler valid menampilkan “Skema tidak dapat digunakan”.
Batas dan privasi
- Setiap kotak menampung hingga 5.000.000 karakter. Lebih dari itu, hasil meminta Anda menempel bagian yang lebih kecil.
- 100 kesalahan pertama ditampilkan; totalnya selalu dihitung.
- Hanya JSON: YAML dan seluruh berkas OpenAPI harus dikonversi dulu. Alat ini memvalidasi; tidak membuat skema dari data dan tidak memperbaiki data Anda.
- Angka dibaca seperti pada
JSON.parsemana pun: bilangan bulat di atas 9.007.199.254.740.991 kehilangan ketepatan sebelum diperiksa. - Skema dan data Anda diperiksa di browser Anda. Tidak ada yang diunggah atau disimpan.
Pertanyaan yang sering diajukan
Bagaimana cara memakai validator JSON Schema online ini?
Tempel skema ke kotak “Skema JSON” dan data yang akan diperiksa ke kotak “Data JSON”. Hasil muncul seketika saat Anda menempel, atau sekitar 300 milidetik setelah berhenti mengetik. “Valid” berwarna hijau berarti data cocok; “Tidak valid” berwarna merah mencantumkan setiap kesalahan beserta jalur dan alasannya. Tidak ada tombol yang perlu ditekan.
Versi JSON Schema apa yang didukung: draft-07, 2019-09, atau 2020-12?
Ketiganya. Versi diambil dari baris “$schema” pada skema Anda. Skema tanpa “$schema” diperiksa sebagai 2020-12, atau 2019-09 jika memakai sintaks lama seperti array pada items. Skema yang mendeklarasikan draft-04, draft-06, atau alamat $schema lain dilaporkan sebagai tidak didukung.
Apa arti jalur seperti $.users[0].email?
Itu adalah lokasi nilai yang gagal. $ adalah akar data JSON Anda, .users adalah properti users, [0] adalah item pertama array itu (penghitungan dimulai dari 0), dan .email adalah properti di dalamnya. Jalur seperti $.users[2].address.zip menuntun ke nilai dengan cara yang sama, selangkah demi selangkah.
Apa arti JSON Schema required yang dilaporkan di objek induk?
Properti yang hilang tidak ada, jadi tidak ada yang bisa ditunjuk. Kesalahan ditampilkan di jalur objek yang seharusnya memuatnya, misalnya $.users[0], dengan alasan “Properti wajib “email” tidak ada.” Tambahkan properti itu ke objek tersebut dan kesalahan hilang.
Bagaimana membuat skema menolak properti tambahan (additionalproperties false)?
Aktifkan “Mode ketat”. Mode ini menambahkan unevaluatedProperties: false ke akar dan ke setiap skema properti atau item yang menggambarkan objek, sehingga setiap properti yang tidak tercantum di skema gagal dengan “Properti tak terduga”. Skema yang sudah menetapkan additionalProperties atau unevaluatedProperties tetap memakai pilihannya.
Apakah format seperti email, date-time, uri, dan uuid diperiksa?
Ya. Kata kunci “format” diperiksa, sehingga alamat seperti ana@ gagal pada string dengan “format”: “email” dan menampilkan “Harus cocok dengan format “email”.” Format umum dicakup, termasuk email, date, date-time, time, uri, uuid, ipv4, ipv6, dan hostname.
Bisakah mengikuti $ref ke berkas lain atau URL?
Hanya di dalam skema yang sama, seperti #/$defs/name atau #/definitions/name. Tidak ada yang diunduh, jadi rujukan seperti https://example.com/address.json dilaporkan sebagai rujukan yang tidak ditentukan skema. Salin skema yang dirujuk ke $defs Anda dan arahkan $ref ke sana.
Apa arti “Skema itu sendiri tidak valid”?
Skema melanggar aturan JSON Schema, misalnya dengan “type”: “strng” atau “minimum” yang ditulis sebagai teks. Hasil mencantumkan masalahnya dengan jalur yang menunjuk ke dalam skema. Data tidak diperiksa sampai skema diperbaiki.
Apakah JSON Schema validator online ini mengunggah skema atau data saya?
Tidak. Skema dan data diperiksa sepenuhnya di browser Anda. Tidak ada yang diunggah atau disimpan, dan Anda tidak memerlukan akun.