| 

.NET C# Java Javascript Exception

1
Hallo

Ich bin gerade dabei ein API zu schreiben das JSON zurück gibt. Unter anderem wird dort ein Datumsfeld zur Verfügung gestellt. Wie handelt man Datum korrekt in einem API? Man findet etliche Lösungen. DateTimeOffset mit einem Custom JSON Formater. Irgend welche Hacks mit DateTime oder Konvertierunen in Strings und wieder zurück. Das ist doch alles öde. Wie macht man es korrekt? Schlussendlich sollten alle möglichen Endgeräte mit dem API umgehen können ohne selber irgend welche Hacks zu schreiben damit das Datum korrekt ankommt.

Ich wollte eigentlich DateTimeOffset nutzen. Nur, dort kann ich scheinbar keine DateTimeOffset? dto = null nicht nutzen. Die Daten sollen dann schlussendlich via EF in eine DB kommen.
News:
08.04.2014
GENiALi 2,5k 1 2 8
1 Antwort
1
Scott Hanselman hat diese Problematik vor einiger Zeit mal schön in einem Blogpost beschrieben. Vielleicht bringt dir der Post ein paar Anregungen und deiner Lösung näher.

http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
08.04.2014
schulz3000 390 1 6
Könnte sein das ich nicht alles richtig verstanden habe. Aber im Beitrag geht es noch um die BETA der V2 WebAPI. Aktuell ist die ja nicht mehr BETA. Also sollte der korrekte Serializer genutzt werden. Bei mir wird ein Datum "timeStamp": "2014-04-09T07:44:02.2730457 02:00" immer mit NULL deserialisiert. hmmm
GENiALi 09.04.2014
OK. Hab eine Lösung gefunden. Das JSON was mir vom ASP.NET Web Api Test Client generiert wird kann nicht deserialisiert werden.
Wenn ich den String auf "timeStamp": "2014-04-09T07:44:02.2730457Z" umbaue, dann kriege ich nicht mehr nur NULL. Das würde aber auch heissen das der Deserializer sein selber serialisiertes Zeugs nicht nutzen kann. :-/
GENiALi 09.04.2014
1
Nachtrag. Auch das hier tut.
"timeStamp": "2014-04-09T07:58:43.5309776+02:00"
Es ist scheinbar nur ein Problem vom "ASP.NET Web Api Test Client".
GENiALi 09.04.2014

Stelle deine Json-Frage jetzt!