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
Mary-Kate OlsenOriginal
2024-12-29 06:49:10786Durchsuche

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>
<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
    }
}

}

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!

Stellungnahme:
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