Maison > développement back-end > C++ > Comment puis-je désactiver la désérialisation DateTime dans Json.NET ?

Comment puis-je désactiver la désérialisation DateTime dans Json.NET ?

Mary-Kate Olsen
Libérer: 2024-12-29 06:49:10
original
751 Les gens l'ont consulté

How Can I Disable DateTime Deserialization in Json.NET?

Désactivation de la désérialisation DateTime dans Json.NET

Considérez le scénario suivant :

<br>utilisation Newtonsoft.Json ;<br>en utilisant Newtonsoft.Json.Linq;</p>
<p>Programme de classe<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">static void Main(string[] args)
{
    // Convert an object to a JObject, specifying DateParseHandling.None
    string s = "2012-08-08T01:54:45.3042880+00:00";
    JObject j1 = JObject.FromObject(new { time = s },
        new JsonSerializer { DateParseHandling = DateParseHandling.None });

    // Convert the JObject back to a string
    string j1String = j1.ToString();

    // Parse the string back into a JObject
    JObject j2 = JObject.Parse(j1String);

    // Check the type and value of the "time" property in j2
    object o2 = j2["time"];
    if (o2 is DateTime)
    {
        // Date deserialization was enabled: "time" is a DateTime
    }
    else
    {
        // Date deserialization was disabled: "time" is a raw string
    }
}
Copier après la connexion

}

Par défaut, Json.NET désérialise dates dans les chaînes JSON en objets DateTime. Cependant, dans certains cas, vous souhaiterez peut-être désactiver ce comportement et conserver la chaîne de date brute. Pour y parvenir, vous pouvez utiliser les options suivantes :

  • JsonSerializer avec DateParseHandling.None : Lors de la conversion d'un objet en JObject, vous pouvez spécifier un JsonSerializer avec DateParseHandling.None pour désactiver la désérialisation des dates.
  • JsonReader : Alternativement, lors de l'analyse directement à partir d'une chaîne, vous pouvez créer un JsonReader et définir manuellement sa propriété DateParseHandling sur None avant de la transmettre à JObject.Load.

En désactivant la désérialisation de la date, vous pouvez conserver le format d'origine. de chaînes de date dans vos données JSON.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal