Lazaság vagy szigor?

vezerkepNem is tudom, hogy lazaság vagy szigor párti legyek, de mindenesetre a böngészők különböző szigorúságú JSON kezelése ma majd 1 órás hibakeresésembe került.
JSON-ban tulajdonképpen tulajdonság – érték párok szerepelnek, vesszővel elválasztva, úgy hogy az értékek lehetnek egyszerű változók, függvények és objektumok is.
Egy átlagos JSON objektum így néz ki:

var rrdJsonOjjektuma = {
   gora: 5,
   init : function(){...},
   hari : {...}
};

Három sornyi objektum esetében nem jön elő semmi kellemetlen meglepetés, de ha egy nagyobb összefüggő JavaScript alkalmazásunk van, akkor az objektumunk pár száz sor méretűvé nő, és programozás közben folyamatosan adunk hozzá új és új tulajdonságokat.

Ha a végére adjuk hozzá az új tulajdonság, akkor néha előfordul, hogy lefelejtjük az eddigi utolsó, mostantól utolsó előtti tag záró } jele után a vesszőt, ami szintaktikai hibához vezet.

Véletlenül az utolsó tag záró } után is tettem egy vesszőt. A Firefox lazán kezelte a dolgot, nem jelzett hibát és rendben is ment. Szépen leprogramoztam amit akartam, működik. Megnéztem Explorerrel és abszolúte semmi JavaScript nem futott benne, és egy olyan hibaüzentet dobott, hogy a 250 soros js fileom 275 sorában szintaktikai hiba van…

Elég nehezen jöttem rá, hogy az Explorer, az Opera és a Safari nem szerette hogy a JSON utolsó tagja után is volt egy vessző (illetve egyáltalán mire megtaláltam, hogy van). A Firefox és a Camino a lazaság pártján volt és (gondolom) kivette az utolsó, felesleges vesszőt.

Így jártam ;-(

One thought on “Lazaság vagy szigor?

  1. Ez egy “alap” szívási lehetőség… Nézőpont kérdése, hogy ki a hibás, ami biztos, hogy a Firefox a túl megengedő ezen a téren. Egyes programnyelvek megengedik a vesszőt, mások nem, bár nem néztem utána, valószínűleg az EcmaScript simán nem definiálta ezt a kérdést.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.