json_enconde und Javascript-Objekte
heinetz
- php
Hallo Forum,
ich generiere aus einem PHP-Array einen JSON-String per json_encode. Das funktioniert alles wunderbar. Jetzt muss ich aber einem Element ein 'new Date()' zuweisen. Das funktioniert aber leider nicht, weil json_encode es in Anführungszeichen setzt.
Gibt es dafür eine elegantere Lösung, als das JSON-Objekt javascriptseitig zu durchforsten?
danke für Tipps und
beste gruesse,
heinetz
Jetzt muss ich aber einem Element ein 'new Date()' zuweisen.
JSON kennt keine Date-Objekte oder sonstige spezifische JavaScript-Objekte (RegExp, Funktionen, ...). Verwende einen Unix-Timestamp. Den kannst du clientseitig einfach in ein Date-Objekt umwandeln: new Date, setTime.
Mathias
JSON kennt keine Date-Objekte oder sonstige spezifische JavaScript-Objekte (RegExp, Funktionen, ...).
Interessant! Wenn das JSON-Objekt nämlich nicht mit json_encode erzeugt wird funktioniert das wunderbar.
Verwende einen Unix-Timestamp. Den kannst du clientseitig einfach in ein Date-Objekt umwandeln: new Date, setTime.
Ja, so umgehe ich das bisher auch.
beste gruesse,
heinetz
JSON kennt keine Date-Objekte oder sonstige spezifische JavaScript-Objekte (RegExp, Funktionen, ...).
Interessant! Wenn das JSON-Objekt nämlich nicht mit json_encode erzeugt wird funktioniert das wunderbar.
Ja, natürlich.
JSON ist ein eigenes Format. JSON ist immer gültiges JavaScript. Aber nicht jedes gültige JavaScript ist JSON. JSON ist eine UNTERMENGE von JavaScript, ein Subset. JSON kann nicht alles, was JavaScript kann.
Wenn du den Code ohnehin als JavaScript an den Browser sendest, dann kannst du new Date, RegExps usw. nach Lust und Laune verwenden.
Wenn du den Code allerdings irgendwo als JSON verarbeitest – ob mit PHP (json_encode/json_decode) oder JavaScript (JSON.parse/stringify) –, dann kannst du nur die Datentypen verwenden, die JSON erlaubt. Das sind nur Object, Array, Boolean, String und Number.
Mathias
moin,
danke für Tipps und
Übertrage in der JSON-Response die Argumente, die "new Date();" braucht, welche das sein können siehe http://de.selfhtml.org/javascript/objekte/date.htm@title=hier. Diese Argumente also serverseitig aufarbeiten und in json einbauen.
Hotti