Dans le contexte de la gestion des données JSON, Json.NET est une bibliothèque indispensable pour analyser et désérialiser les objets de données . Un problème courant rencontré lors de l’analyse des chaînes JSON est la désérialisation automatique des valeurs DateTime. Dans certains scénarios, il peut être souhaitable d'empêcher cette désérialisation et de récupérer la représentation sous forme de chaîne brute à la place.
Pour illustrer le problème, considérons la chaîne JSON suivante :
{ "time": "2012-08-08T01:54:45.3042880+00:00" }
Si nous utilisons Json Méthode JObject.Parse de .NET pour analyser cette chaîne, la propriété time sera automatiquement désérialisée en un objet DateTime. Ce comportement peut être problématique dans les cas où la représentation sous forme de chaîne brute est requise pour un traitement ultérieur.
Pour désactiver la conversion automatique des dates dans JObject.Parse, nous pouvons utiliser le JsonReader Propriété .DateParseHandling. Cette propriété nous permet de spécifier comment les dates doivent être gérées pendant le processus d'analyse. En le définissant sur DateParseHandling.None, nous pouvons demander à Json.NET de traiter les dates comme des chaînes et de ne pas tenter de les convertir en objets DateTime.
Le code suivant montre comment y parvenir :
using(JsonReader reader = new JsonTextReader(new StringReader(jsonString))) { reader.DateParseHandling = DateParseHandling.None; JObject o = JObject.Load(reader); }
Dans ce code, nous créons d'abord un objet JsonReader en utilisant la chaîne JSON fournie. Ensuite, nous définissons la propriété DateParseHandling sur DateParseHandling.None avant de charger les données JSON dans un JObject. En conséquence, la propriété time sera analysée comme une chaîne brute et accessible en conséquence.
En utilisant la propriété JsonReader.DateParseHandling, nous pouvons désactiver efficacement la désérialisation des dates dans Méthode JObject.Parse de Json.NET. Cela nous permet de récupérer la représentation sous forme de chaîne brute des dates, offrant ainsi un meilleur contrôle sur la gestion et le traitement des données dans divers scénarios.
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!