/ / Rails Convertir une chaîne JSON en Javascript Date () - javascript, ruby-on-rails-3, json, date

Rails Convert JSON String to Javascript Date () - javascript, ruby-on-rails-3, json, date

"Je retourne des json de l’un de mes contrôleurs comme celui-ci:

render :json => {
:date => "new Date(new Date("Jan 01 2000").getTime() + #{500.seconds.to_i} * 1000)"
}

Je compte bien renvoyer une nouvelle date à 500secondes après minuit (ou exactement 00:08:20). Ce json est passé et traité par une fonction JavaScript qui attend une date, mais il semble l’interpréter comme une chaîne. Je reçois un message d’erreur similaire à:

Incompatibilité de type. Valeur new Date (nouvelle Date ("01 janvier 2000"). GetTime () + 500 * 1000) ne correspond pas au type date

L'exécuter dans la console Firebug produit cependant une date parfaitement valide. Comment puis-je obtenir JavaScript pour modifier mon json comme une date?


modifier

Pour fournir un peu plus de contexte, j’envoie une série de requêtes JSON à une fonction JavaScript qui crée des graphiques à l’aide de l’API de visualisation de Google.

Réponses:

1 pour la réponse № 1

JSON n'est pas Javascript, c’est juste un format de sérialisation des données, un peu comme XML.

Ce que vous avez est en fait une chaîne de Javascriptcode que vous devez interpréter (ou évitez d’avoir à interpréter, de préférence). Le seul moyen pour que ce code JSON soit valide est, en effet, que ce soit une valeur de chaîne. Même alors, il ne faut pas analyser correctement sans être à l'intérieur d'un tableau ou d'une propriété d'objet.

Vous devriez refactoriser tout ce qui retourne ce code Javascript pour le rendre simplement "Jan 01 2000", puis faire ce traitement en Ruby. Ou cependant, il serait préférable de refacturer; il est difficile de dire sans plus de contexte.