L'analyse JSON DateTime de Newtonsoft JSON Sérialiseur
J'ai sérialisé un objet à l'aide Newtonsoft du sérialiseur JSON, et la date /heure est venu à travers comme:
/Date(1237588418563+0000)/
Quand J' $.evalJSON() sur ce, c'est un objet mais je ne trouve pas de Date normale de méthodes comme le toUTCString sur elle.
Les idées de ce que je peux faire avec ça?
- Cela fonctionne pour vous?: tek-tips.com/viewthread.cfm?qid=1526126&page=8
Vous devez vous connecter pour publier un commentaire.
Utiliser l'un des JsonConverters qui viennent avec Json.NET pour travailler avec des dates pour obtenir un meilleur format. JavaScriptDateTimeConverter vous donnera automatiquement un code JavaScript date.
Documentation: la Sérialisation de Dates en JSON avec Json.NET
Je suis venu avec une approche différente qui pourrait être utile à certains. En gros je créer mon propre CustomDateConverter que j'appelle quand j'ai besoin d'elle. Le convertisseur prend 2 paramètres, un format de date par exemple
yyyy-MM-dd HH:mm:ss
et un TimeZoneInfo, ce qui me permet de convertir la date de l'UTC pour le temps de l'utilisateur de la zone:Vous pouvez l'utiliser comme ceci:
Évidemment, vous pouvez supprimer tout ce qui est lié à la fois la zone si vous souhaitez personnaliser la date de mise en forme. Laissez-moi savoir ce que contribué à!
services.AddMvc() .AddJsonOptions(jsonOption => { jsonOption.SerializerSettings.Converters.Add( new JSONCustomDateConverter("dd/mm/yyy", TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"))); });
De Newtonsoft Json.Net la version 4.5r5 vous utilisez le JsonPropertyAttribute Classe de la classe et de l'ensemble de ses ItemConverterType Propriété des biens.
Utilisation:
Comme je l'ai observé ceci permettra de définir les DateTimeConverter pour toutes les propriétés de cette classe et pas seulement celle d'avant qui est déclaré.
A couru dans le même problème et trouvé une solution basée sur le lien à partir d'Adam:
Il ressemble à un timestamp Unix, qui javascript est facilement en mesure de convertir en un objet date. Le
- 0
est tout simplement pour faire du javascript traiter lasubstr
de sortie comme un entier... je suppose que vous pourriezNumber()
ainsi, si vous n'aimez pas le look de- 0
L'objet JSON quelque chose comme ceci:
mais, là encore, il serait préférable de fixer l'objet JSON donc la fonction date à pied sans l'aide de quelque chose comme eval() ou la fenêtre[]. Peut-être en jQuery. Pas sûr.
N'oubliez pas que le décalage peut être
+
et pas seulement-
pour l'offset!eval("new " + data.CreateDate.replace(/\//ig,""))
semble très bien fonctionnerDésolé je simplifie un peu @James Newton-King
Cela fonctionne pour moi
ObjectMapper
?