A JSON (JavaScript Object Notation, JavaScript objektumjelölés) emberek számára is olvasható–írható, programozottan pedig könnyen feldolgozható és előállítható adatcsere-formátum. A JSON a JavaScript programozási nyelv egy részén alapul. A JavaScripttel való kapcsolata ellenére nyelvfüggetlen, több nyelvhez is van értelmezője. Formátuma a C családú nyelvekben ismert konvenciókhoz igazodik.
A JSON hivatalos mime-típusa az application/json, fájlkiterjesztése pedig a .json.
A JSON formátumot gyakran az adatok sorbarendezésére és a strukturált adatok hálózati kapcsolaton való továbbítására használják. Elsődlegesen egy szerver és egy webalkalmazás közi adatátvitelre használják, ezáltal az XML alternatívájaként funkcionál.
A JSON alap adattípusai:
Lehet lebegőpontos és egész. A C és Java számaihoz hasonló. A különbség az, hogy oktális és hexadecimális formátum itt nem használható.
A karakterlánc nulla vagy több, idézőjelek közé zárt Unicode karakter, szükség szerint visszaper-jellel kivédve. A karakter egy hosszúságú karakterláncnak felel meg. A karakterlánc nagyban hasonlít a C vagy Java karakterláncaihoz.
Értéke true (igaz) vagy false (hamis).
A tömb értékek rendezett halmaza. A tömb [ (nyitó szögletes zárójel)-lel kezdődik és ] (záró szögletes zárójel)-lel zárul. Az értékeket , (vessző)-vel választjuk el egymástól. Az értékeknek nem kell azonos típusúnak lenniük.
Az objektum név–érték párok rendezetlen halmaza. Egy objektum { (nyitó kapcsos zárójel)-lel kezdődik és } (záró kapcsos zárójel)-lel zárul. A ':' karakter választja el a kulcsot és az értéket. A név–érték párok , (vessző)-vel tagoltak. A neveknek sztringeknek kell lenniük és különbözniük egymástól. Érték lehet idézőjelek közé írt karakterlánc, szám, logikai igaz, logikai hamis, null, objektum vagy tömb. A struktúrák egymásba ágyazhatók.
Üres érték.
Példa egy JSON objektumra:
{"widget": { "debug": "on", "window": { "title": "Sample Konfabulator Widget", "name": "main_window", "width": 500, "height": 500 }, "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250, "vOffset": 250, "alignment": "center" }, "text": { "data": "Click Here", "size": 36, "style": "bold", "name": "text1", "hOffset": 250, "vOffset": 100, "alignment": "center", "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } }}
Hasonlóságok:
Különbségek: