2 teams – 2 parsere

by Jesper september 16, 2009 09:37

Eller: Hvorfor ved højre hånd ikke hvad venstre gør?

Jeg har tidligere plederet for at man skulle ligge sig op ad MS’s System.Web.Script.JavaScriptSerializer til serialicering af Json objekter, og specielt datoer. Det virker super fint, selvom jeg har været noget ked af formatets læsbarhed (en egenskab som ikke er helt ubetydelig). Nu bliver jeg så opmærksom på at alle de store browsere: IE, Firefox og Chrome er begyndt at understøtte native Json serialicering. Ja man kan nu skrive følgende, uden at inkluderer 3. parts biblioteker:

var json = JSON.stringify(new Date());
alert(json);

Men hvordan serialicerer den nye parser så datoer? Jo resultatet er overraskende: 2009-09-16T22:00:00Z

Implementeringen understøtter iso datoer som også kendes fra xml!

Det er jo dyb krise at man på den ene side har en server teknologi der serialicerer datoer på en måde, og en klient teknologi der serialicerer på en anden.

Bruger man System.Web.Script.JavaScriptSerializer på serveren, kan man ikke udnytte den overlegne performance som serializeren har på klienten.

Heldigvis understøtter JSON.parse en mulighed for at man efterbehandler resultatet, inden objektet returneres. Man giver bare metoden en funktion som 2. parameter:

var date = JSON.parse(json, function(key, value){
    // Implementer efterbehandling
});

Det åbner muligheden for at man på klienten kan understøtte MS’s specielle format, og Rick Stahl har implementeret den form for efterbehandling i et minimalt bibliotek, så man kan håndterer MS dato serialicering.

Det løser problemet, men havde højre hånd bare vidst hvad venstre foretog sig…

Code on…

Tags:

JavaScript

Kommentarerne er lukkede

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen | Modified by Mooglegiant

About

Mit navn er Jesper Jensen, og jeg arbejder til dagligt som web-udvikler hos DGI, hvor mit speciale er klientside applikationer. Før det var jeg nogle år i robotbranchen, hvor jeg arbejdede med 3D simulering og system koordinering. Jeg elsker webudvikling, og specielt JavaScript har min interesse. Jeg har blogget om mine oplevelser med udvikling siden 2004

Calendar

<<  juli 2010  >>
mationtofr
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar

RecentComments

Comment RSS