~/tools / JSON Schema Validator
JSON Schema Validator — Periksa JSON terhadap JSON Schema
Periksa data JSON terhadap sebuah JSON Schema dan lihat setiap masalah beserta path-nya dan aturan yang gagal. Mencakup keyword utama Draft 2020-12. Berguna untuk memeriksa keluaran terstruktur dari model AI. Tidak ada data yang keluar dari browser Anda.
Mengikuti JSON Schema Draft 2020-12 untuk keyword yang didukungnya. $ref hanya dibaca di dalam schema yang sama.
Semuanya berjalan di browser Anda. Schema dan data tidak diunggah.
JSON Schema menggambarkan seperti apa JSON yang valid: tipenya, properti yang wajib ada, nilai yang diizinkan, dan rentangnya. Alat ini memeriksa sepotong JSON terhadap sebuah schema dan mencantumkan setiap masalah beserta lokasinya di dalam data dan keyword schema yang gagal. API AI dapat membatasi balasan model agar sesuai dengan schema, tetapi balasan itu tetap bisa salah pada nilainya, ditolak, atau terpotong, jadi sebaiknya Anda memeriksanya sendiri. Keyword yang tidak diperiksa alat ini, seperti format, dicantumkan ketika schema Anda memakainya, sehingga hasil lolos tidak pernah terlihat lebih kuat daripada yang sebenarnya.
Kapan dipakai
- Memeriksa apakah keluaran terstruktur model AI sesuai dengan schema yang Anda berikan
- Menguji schema dengan beberapa contoh valid dan tidak valid sebelum dipakai di sebuah API
- Mencari properti mana dalam dokumen JSON besar yang melanggar aturan
Cara pakai
- Tempelkan schema di sebelah kiri dan data JSON di sebelah kanan, atau muat contohnya.
- Baca hasilnya: lolos, atau daftar masalah beserta path di dalam data dan aturan yang gagal.
- Periksa pemberitahuan tentang keyword yang tidak diverifikasi, jika muncul.
Apa yang diperiksa schema, dan apa yang tidak
- properties hanya memeriksa properti yang ada. Sebuah properti wajib hanya jika namanya tercantum di required, jadi properti yang tidak tercantum boleh tidak ada.
- additionalProperties berlaku untuk nama yang tidak cocok dengan properties maupun patternProperties. Jika dihilangkan, properti tambahan diperbolehkan.
- integer cocok dengan angka apa pun yang bagian pecahannya nol.
- pattern adalah ekspresi reguler ECMA-262 dan tidak di-anchor: pattern b cocok dengan string abc. Tambahkan ^ dan $ jika seluruh string harus cocok.
- minLength dan maxLength menghitung karakter seperti yang didefinisikan RFC 8259, jadi satu emoji dihitung satu.
- format secara default adalah anotasi, dan pemeriksaannya opsional. Alat ini tidak memeriksanya dan memberi tahu ketika schema memakainya.
- Keyword yang tidak dikenal diperlakukan sebagai anotasi, jadi keyword yang salah eja seperti requierd diabaikan dan tidak menggagalkan schema.
Array: 2020-12 dan draft sebelumnya
| Draft | Schema untuk item pertama | Schema untuk sisanya |
|---|---|---|
| 2020-12 | prefixItems | items |
| draft-07 dan sebelumnya | items sebagai array | additionalItems |
Alat ini membaca kedua bentuk. Pada 2020-12, items: false menggantikan additionalItems: false.
Apa yang diterima fitur structured output AI
Setiap vendor hanya menerima sebagian dari JSON Schema, dan ketiganya mendokumentasikannya dengan cara yang berbeda.
| Vendor | Apa kata dokumentasinya |
|---|---|
| OpenAI | Root harus berupa objek. Setiap properti harus tercantum di required (nilai opsional ditulis sebagai type yang juga mengizinkan null), dan setiap objek membutuhkan additionalProperties: false. allOf, not, dependentRequired, dependentSchemas, dan if/then/else tidak didukung. |
| Anthropic | additionalProperties harus false. Schema rekursif, minimum, maximum dan multipleOf, minLength dan maxLength, serta minItems array selain 0 atau 1 tidak didukung. Fitur yang tidak didukung mengembalikan error 400. |
| Google Gemini | Hanya sebagian dari JSON Schema yang didukung. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains, dan maxContains dibuang dan diabaikan, bukan menimbulkan error. |
Schema yang lolos di validator ini masih bisa ditolak, atau hanya ditegakkan sebagian, oleh fitur milik vendor. Periksa dokumentasi vendor, dan validasi sendiri responsnya.
Validasi sendiri responsnya
- Google menyatakan keluaran bisa sesuai dengan schema namun tetap salah maknanya, dan meminta Anda memvalidasi nilainya di aplikasi Anda.
- Anthropic mencatat bahwa nilai enum atau const bisa kembali dengan perbedaan hanya pada huruf besar-kecil, tanpa error.
- OpenAI menyatakan penolakan (refusal) belum tentu mengikuti schema, dan respons yang terpotong oleh batas token maksimum tidak lengkap.
- Anthropic menyatakan balasan yang terpotong oleh max_tokens mungkin tidak sesuai dengan schema. Periksa mengapa model berhenti sebelum Anda mengurainya.
Sumber (diperiksa 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output
Tanya jawab
JSON Schema versi mana yang diikuti?
Draft 2020-12. Alat ini juga membaca bentuk array lama dari draft-07, di mana items bisa berupa array dan additionalItems mencakup sisanya. Alat ini menerima $ref ke definisi di dalam schema yang sama ($defs atau definitions) dan tidak mengambil schema eksternal.
Keyword apa saja yang diperiksa?
type, enum, const, batas angka dan string, pattern, keyword array (items, prefixItems, minItems, maxItems, uniqueItems, contains), keyword objek (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired, dan lainnya), allOf, anyOf, oneOf, not, dan if/then/else.
Apa yang tidak diperiksa?
format, unevaluatedProperties, unevaluatedItems, $dynamicRef, dan contentMediaType tidak diperiksa. JSON Schema memperlakukan format sebagai anotasi secara default, dan pemeriksaannya bersifat opsional. Ketika schema Anda memakai salah satunya, alat ini memberi tahu.
Mengapa keyword yang salah eja tidak menimbulkan error?
JSON Schema memperlakukan keyword yang tidak dikenal sebagai anotasi, sehingga salah ketik seperti requierd diabaikan dan schema tetap lolos. Alat ini melaporkan nilai yang salah untuk keyword yang dikenalnya, misalnya type yang tidak ada, tetapi tidak bisa tahu bahwa yang Anda maksud adalah kata lain.
Apakah schema yang lolos di sini akan berfungsi dengan structured outputs milik vendor AI?
Belum tentu. Setiap vendor hanya mendukung sebagian dari JSON Schema. OpenAI mewajibkan semua properti masuk required dan additionalProperties bernilai false, Anthropic tidak mendukung batas panjang angka atau string, dan Gemini mengabaikan beberapa keyword. Lihat catatan vendor di bawah alat ini.
Apakah data saya dikirim ke server?
Tidak. Schema dan data sama-sama diperiksa di browser Anda.