Heim > Backend-Entwicklung > C++ > Wie kann ich die DateTime-Deserialisierung in Json.NET deaktivieren?

Wie kann ich die DateTime-Deserialisierung in Json.NET deaktivieren?

Mary-Kate Olsen
Freigeben: 2024-12-29 06:49:10
Original
824 Leute haben es durchsucht

How Can I Disable DateTime Deserialization in Json.NET?

Deaktivieren der DateTime-Deserialisierung in Json.NET

Stellen Sie sich das folgende Szenario vor:

<br>using Newtonsoft.Json;<br>verwendet Newtonsoft.Json.Linq;</p>
<p>Klassenprogramm<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
    }
}
Nach dem Login kopieren

}

Standardmäßig deserialisiert Json.NET Datumsangaben in JSON-Strings in DateTime-Objekte. In einigen Fällen möchten Sie dieses Verhalten jedoch möglicherweise deaktivieren und stattdessen die Rohdatumszeichenfolge beibehalten. Um dies zu erreichen, können Sie die folgenden Optionen verwenden:

  • JsonSerializer mit DateParseHandling.None:Bei der Konvertierung von einem Objekt in ein JObject können Sie einen JsonSerializer mit DateParseHandling.None angeben Datum deaktivieren Deserialisierung.
  • JsonReader: Alternativ können Sie beim Parsen direkt aus einer Zeichenfolge einen JsonReader erstellen und dessen DateParseHandling-Eigenschaft manuell auf None setzen, bevor Sie sie an JObject.Load übergeben.

Durch Deaktivieren der Datumsdeserialisierung können Sie das ursprüngliche Format der Datumszeichenfolgen in Ihrem JSON beibehalten Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich die DateTime-Deserialisierung in Json.NET deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage