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: