Materi
JSON Schema adalah kosakata untuk menyatakan bentuk data JSON, dan skemanya sendiri juga ditulis sebagai JSON. Kata kunci paling dasar adalah type. Spesifikasi validasi JSON Schema 2020-12 mengenal enam tipe dasar, yaitu null, boolean, object, array, number, dan string, ditambah integer, yang cocok dengan angka apa pun yang bagian pecahannya nol. Nilai type boleh satu teks atau array teks; bila berupa array, data cukup cocok dengan salah satunya.
{
"type": "object",
"properties": {
"isbn": { "type": "string" },
"stok": { "type": "integer" },
"harga": { "type": "number" },
"sinopsis": { "type": ["string", "null"] }
}
}Dokumentasi Understanding JSON Schema memberi tiga contoh yang menentukan. Angka 1.0 tetap integer, karena JSON tidak membedakan 1 dan 1.0. Teks "42" ditolak oleh type integer maupun number walaupun isinya angka. Dan null bukan berarti field tidak ada: null adalah nilai dengan tipe sendiri, yang hanya lolos bila skemanya menyebut "null".
Mesin latihan ini tidak punya pustaka validator, jadi kamu menulis pemeriksanya sendiri dengan JavaScript. Tiga jebakan perlu diingat. MDN mencatat typeof null menghasilkan "object", dan typeof sebuah array juga "object", sehingga keduanya dipisahkan dengan === null dan Array.isArray. Number.isInteger(1.0) bernilai true, sejalan dengan aturan integer JSON Schema. RFC 8259 tidak mengizinkan NaN dan Infinity di JSON, sehingga nilai seperti itu tidak boleh lolos sebagai number.