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 ;-(

  • Share/Bookmark
Mi az az RSS és mi az a PayPal?

Ez a bejegyzés rrd billentyűzetéből potyogott ki 2007 június 7. napján 04:11:03-kor. Eddig 804 olvasást ért meg. A visszajelzéseket nyomonkövetheted ezzel az RSS feed-el. Véleményt nyilváníthatsz, vagy trackbackolhatsz a saját oldaladon.

Ugrás fel

JólMegMondjad!

1 vélemény

  1. Bártházi András
    2007 június 7. 11:24:58

    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.