Gestion de la désérialisation dans Json.NET : désactivation de la conversion de date
Dans certains scénarios, il peut être souhaitable d'empêcher Json.NET de convertir automatiquement dates pendant la désérialisation. Pour y parvenir, nous pouvons utiliser la propriété DateParseHandling du JsonSerializer.
Considérez le code suivant :
string s = "2012-08-08T01:54:45.3042880+00:00"; JObject j1 = JObject.FromObject( new { time = s }, new JsonSerializer { DateParseHandling = DateParseHandling.None } );
Ici, nous spécifions que les dates ne doivent pas être analysées en définissant la propriété DateParseHandling sur Aucun. Par conséquent, la variable o restera une chaîne contenant la valeur de date d'origine.
Malheureusement, la méthode JObject.Parse() n'offre pas de moyen direct de contrôler l'analyse de la date. Cependant, nous pouvons exploiter le JsonReader sous-jacent pour atteindre notre objectif.
using (JsonReader reader = new JsonTextReader(new StringReader(j1.ToString()))) { reader.DateParseHandling = DateParseHandling.None; JObject o = JObject.Load(reader); }
Dans ce code, nous créons un JsonReader avec les options d'analyse de date souhaitées, puis nous l'utilisons pour désérialiser la chaîne JSON en un JObject. Cette approche nous permet de spécifier un comportement d'analyse personnalisé pour les dates, garantissant qu'elles sont traitées comme des chaînes et non comme des objets DateTime.
Bien que le comportement par défaut de conversion des dates lors de la désérialisation puisse être pratique dans de nombreux cas, il est important de savoir que Json.NET fournit des options pour personnaliser ce comportement afin de répondre aux exigences spécifiques de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!