8
votes

ASP.NET MVC Controller.json DateTime Serialization vs Newtonsoft JSON DateTime Serialization

Lorsque je retourne un objet contenant une propriété DateTime utilisant xxx

sur le client, je reçois xxx

si je retourne la même valeur en utilisant < / p> xxx

puis la valeur sérialisée renvoyée (ainsi que l'objet sérialisé) est un fuseau horaire conscient: xxx

existe-t-il un moyen de Obtenez un résultat compatible DateTime sans sans double sérialisation? J'ai lu quelque part que MS comprenda Newtonsoft Json dans MVC?


2 commentaires

Hmm google? Cela semble familier. La sérialisation de Newton fonctionne bien. La question est pourquoi MVC ignore le fuseau horaire quand ils ont adopté / date () / format.


Il suffit d'utiliser $. Parsejson (résultat) analysera correctement les dates. Stackoverflow.com/a/4540007/752974


4 Réponses :


-2
votes

Si vous ne voulez pas creuser dans la chose d'analyse que de convertir simplement votre date à la chaîne que d'analyser avec le JSON.

Par exemple P>

return Json(DateTime.Now.ToString("your date format if you want to specify"));


2 commentaires

Désolé, mais ce post ne consiste pas à montrer des dates. Il s'agit de la cohérence du format de date sérialisée pour des objets complexes contenant des propriétés DateTime dans le serveur au client et au client des scénarios de serveur. Et ce que vous suggérez de faire dans la 2e ligne avec SerializeObject pour l'objet entier.


@ user1188755 ... Vérifiez ci-dessous cette Stackoverflow.com/Questions/668488/...



11
votes

J'ai finalement compris quoi faire.
Je vais changer mon projet au format DateTime ISO 8601. La sérialisation est bien effectuée avec json.net, juste en décorant la propriété DateTime sur l'objet avec l'attribut JSONConverter.

    jsObject = JSON.parse(result)


1 commentaires

Une bonne réponse mais j'ai trouvé que les attributs de Newtonsoft.json ne sont pas nécessaires. Il suffit d'utiliser $. Parsejson (résultat) analysera correctement les dates. Stackoverflow.com/a/4540007/752974



-2
votes

Il renvoie le format de date du serveur. Vous devez définir votre propre fonction. XXX

};


0 commentaires

0
votes

dans la Webapiconfig fort> SET:

return Request.CreateResponse(HttpStatusCode.OK, obj);


0 commentaires