Adatcsere JSON formátumban

Új e-mail cim
E-mail címek

Kommentár

Az előző példában láthattuk, hogy igencsak sokat kell gépelnünk ha XML-t szeretnénk JavaScripttel feldolgozni. Ebben a példában bemutatom hogyan könnyíti meg a JSON az információcserét a kiszolgáló és a kliens között.

A felhasználó e-mail címeket adhat egyesével egy listához. A megadott e-mail cím kiszolgáló oldalon van ellenőrizve:

A "Hozzáad" nyomógombra kattintva az XmlHttpRequest objektum segítségével egy GET HTTP lekérést küldünk a kiszolgálóhoz a begépelt e-mail címmel. A lekérésre a kiszolgáló a következők valamelyikét adja vissza a kliensnek: A probléma tehát az, hogy a kiszolgáló milyen formában küldje vissza ezt az információt. A visszaadott válasz nem mindig ugyanaz, egyszer egy szám, más alkalommal pedig valamilyen hibaüzenet lehet. Ez azt jelenti, hogy a kliensnek tudnia kell, hogy a válasz hibaüzenet vagy valami más. Természetesen ebben az egyszerű példában a válasz lehetne egy előre lefektetett konvenció alapján formátozott sztring is (az XmlHttpRequest objektum responseText attribútuma), de ezt is nehézkes lenne feldolgozni.

Bonyolultabb adatstruktúráknál kénytelenek lennénk XML-t használni, hacsak nem ismerjük a JSON-t.

A JSON a JavaScript Object Notation rövidítése. Feladata, hogy struktúrákat írjon le. Elsősorban az Ajax alapú kommunikációk esetében használják, mivel a JSON jóval tömörebb, mint az XML (JSON: The Fat-Free Alternative to XML).

A kiszolgálótól kapott válasz egy karakterlánc, amit az XmlHttpRequest objektum responseText attribútumával kérhetünk le. A kiszolgáló JavaScript objektum definíciós kódot küld vissza. Ez valójában egy szerializált objektum deklaráció, amit a JavaScript eval utasításával lehet deszerializálni, azaz létrehozni az objektumot. eval('var oResponse ='+ oXmlHttp.responseText)
if (oResponse.error){
alert("Hiba: "+ oResponse.error);
}else{
oResponse.emailID
}

Látható, hogy a visszakapott üzenetet egyáltalán nem kell parszolni és tetszőleges számú kulcs-értéket lehet definiálni. Két kérdés azonban felmerül:

Számos PHP/JavaScript könyvtár született, amelyek maximálisan leegyszerűsítik a JSON üzenetek küldését ill. fogadását és természetesen megoldással szolgálnak a fenti problémákra is. Néhány közülük: