Memahami JSON Schema: Panduan Lengkap Validasi
Kuasai JSON Schema untuk validasi data. Pelajari sintaksis skema, teknik validasi, dan implementasi di berbagai bahasa pemrograman.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
Apa Itu JSON Schema?
JSON Schema adalah kosakata untuk memvalidasi dan mendeskripsikan dokumen JSON. Ia mendefinisikan struktur, batasan, dan aturan validasi untuk data JSON Anda.
Contoh Skema Dasar
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer", "minimum": 0 },
"email": { "type": "string", "format": "email" }
},
"required": ["name", "email"]
}
Kata Kunci Skema (Schema Keywords)
- type: Tipe data (string, number, object, array, boolean, null)
- required: Properti yang wajib ada
- properties: Definisi properti objek
- minimum/maximum: Batasan angka
- minLength/maxLength: Batasan panjang string
- pattern: Pola regex untuk string
- format: Format yang telah ditentukan (email, uri, date, dll.)
Validasi di JavaScript
import Ajv from 'ajv';
const ajv = new Ajv();
const schema = {
type: 'object',
properties: {
name: { type: 'string' },
age: { type: 'number', minimum: 0 }
},
required: ['name']
};
const validate = ajv.compile(schema);
const valid = validate({ name: 'Alice', age: 30 });
if (!valid) {
console.log(validate.errors);
}
Validasi di Python
from jsonschema import validate, ValidationError
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer", "minimum": 0}
},
"required": ["name"]
}
data = {"name": "Alice", "age": 30}
try:
validate(instance=data, schema=schema)
print("Valid!")
except ValidationError as e:
print(f"Error: {e.message}")
Fitur Lanjutan
- $ref: Referensi skema dan penggunaan kembali
- allOf/anyOf/oneOf: Komposisi skema
- if/then/else: Skema kondisional
- additionalProperties: Mengontrol properti tambahan
Contoh Skema Bersarang
{
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"name": { "type": "string" },
"address": {
"type": "object",
"properties": {
"street": { "type": "string" },
"city": { "type": "string" }
}
}
}
}
}
}
Validasi Array
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" }
}
},
"minItems": 1,
"maxItems": 100
}
Praktik Terbaik
Penggunaan Kembali Skema (Schema Reusability)
{
"$defs": {
"address": {
"type": "object",
"properties": {
"street": { "type": "string" },
"city": { "type": "string" }
}
}
},
"type": "object",
"properties": {
"billingAddress": { "$ref": "#/$defs/address" },
"shippingAddress": { "$ref": "#/$defs/address" }
}
}
Kesimpulan
JSON Schema sangat penting untuk membangun API yang tangguh. Ia menyediakan validasi, dokumentasi, dan keamanan tipe untuk data JSON Anda!
Artikel Terkait
Apa itu JSON? Panduan Lengkap untuk Pemula 2026
Pelajari apa itu JSON, sintaksisnya, tipe data, dan kegunaannya. Panduan lengkap dan ramah pemula untuk memahami JavaScript Object Notation.
Kesalahan JSON Umum dan Cara Memperbaikinya
Pecahkan masalah kesalahan sintaksis JSON dengan panduan lengkap ini. Pelajari cara mengidentifikasi dan memperbaiki masalah validasi JSON yang paling umum.
API JSON dan Layanan REST: Panduan Pengembangan Lengkap
Pelajari cara membangun dan mengonsumsi API REST berbasis JSON. Mencakup metode HTTP, autentikasi, praktik terbaik, dan contoh implementasi dunia nyata.