Materi
Badan respons jarang datar. Pesanan memuat objek pelanggan dan array barang, dan setiap barang adalah objek lagi. Di JSON Schema, nilai di dalam properties adalah skema lengkap, jadi skema bisa bersarang sedalam datanya. Untuk array, kata kunci items berisi satu skema yang berlaku bagi setiap elemen. Dokumentasi Understanding JSON Schema mencatat satu elemen yang tidak cocok membuat seluruh array tidak sah, dan array kosong selalu lolos items.
{
"type": "object",
"properties": {
"anggota": {
"type": "object",
"properties": { "nomor": { "type": "string" } },
"required": ["nomor"]
},
"buku": {
"type": "array",
"items": {
"type": "object",
"properties": { "isbn": { "type": "string" }, "hari": { "type": "integer" } },
"required": ["isbn"]
}
}
}
}Pesan "data tidak sah" tidak membantu siapa pun; pemeriksa harus menyebut letak pelanggarannya. Spesifikasi JSON Schema 2020-12 menulis letak itu sebagai JSON Pointer (RFC 6901): urutan nama field dan indeks array, masing-masing diawali garis miring. Pointer /buku/1/hari menunjuk field hari di elemen kedua array buku, karena indeks dimulai dari 0. Pointer kosong menunjuk seluruh dokumen. Karakter ~ di nama field ditulis ~0 dan garis miring ditulis ~1, sehingga field bernama a/b menjadi /a~1b.
RFC 9457 memakai pointer yang sama dalam bentuk fragmen URI, misalnya #/age, untuk menunjuk field bermasalah di contoh respons galat validasinya. Modul 3 memakai bentuk itu.