A JSON Schema egy deklaratív nyelv és szabvány JSON-adatok szerkezetének, adattípusainak és korlátozásainak leírására és ellenőrzésére. Segítségével pontosan meghatározható például, hogy egy JSON-objektumnak milyen mezőket kell tartalmaznia, azok milyen típusú értékeket fogadhatnak, és milyen validációs szabályoknak kell megfelelniük.
A JSON önmagában az adatok formátumát határozza meg, de nem mondja meg, hogy egy adott alkalmazás milyen struktúrát vár el. Egy JSON Schema ezt a hiányzó „szerződést” írhatja le. Meghatározható például, hogy a product_name mező szöveg legyen, a price szám, a currency csak bizonyos értékeket vehessen fel, és egyes mezők kötelezőek legyenek.
A szabályokat úgynevezett schema keywordök segítségével lehet megadni. Ilyen például a type, a properties, a required, az enum vagy az objektumok további mezőit szabályozó additionalProperties. Maga a schema is JSON-dokumentum, így géppel feldolgozható és programozott validációra használható.
A JSON Schema több verzióban – úgynevezett draftokban – fejlődött. A jelenlegi publikált specifikáció a Draft 2020-12; ezért egy schema a $schema kulccsal azt is jelezheti, hogy melyik dialektus szabályait követi.
Konkrét példa
Egy webshop AI-rendszerének minden termékről egységesen terméknevet, árat és pénznemet kell előállítania. A JSON Schema előírhatja, hogy az eredmény ilyen logikát kövessen:
{
"type": "object",
"properties": {
"product_name": { "type": "string" },
"price": { "type": "number" },
"currency": { "type": "string" }
},
"required": ["product_name", "price", "currency"]
}
A schema ebben az esetben nem magukat a termékadatokat tartalmazza, hanem azt írja le, milyen szerkezetűnek kell lennie az adatnak.
Miért fontos?
A JSON Schema különösen fontos API-k, automatizációk és AI-rendszerek összekapcsolásánál, mert egyértelmű, géppel ellenőrizhető adatstruktúrát biztosít. Ha egy AI-modell kimenete egy következő rendszer bemenete lesz, nem elég, hogy a válasz ember számára érthető legyen: a fogadó szoftvernek is kiszámíthatóan fel kell tudnia dolgozni.
Ezért használható JSON Schema például Structured Outputs és Function Calling esetén is az elvárt struktúra meghatározására. Fontos azonban, hogy a schema az adatok szerkezeti megfelelőségét képes szabályozni; önmagában nem garantálja, hogy a benne szereplő információ tényszerűen helyes.
Kapcsolódó fogalmak
Structured Outputs
Function Calling
API
Tool Use
JSON