ホームページ > バックエンド開発 > C++ > Json.NET で DateTime 逆シリアル化を無効にするにはどうすればよいですか?

Json.NET で DateTime 逆シリアル化を無効にするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 06:49:10
オリジナル
784 人が閲覧しました

How Can I Disable DateTime Deserialization in Json.NET?

Json.NET での DateTime 逆シリアル化の無効化

次のシナリオを考えてみましょう:

<br>使用Newtonsoft.Json;<br>を使用Newtonsoft.Json.Linq;</p>
<p>class Program<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
    }
}
ログイン後にコピー

}

デフォルトでは、Json.NET は逆シリアル化します。 JSON 文字列の日付を DateTime オブジェクトに変換します。ただし、場合によっては、この動作を無効にして、代わりに生の日付文字列を保存したい場合があります。これを実現するには、次のオプションを使用できます。

  • JsonSerializer with DateParseHandling.None: オブジェクトから JObject に変換する場合、DateParseHandling.None を使用して JsonSerializer を指定できます。日付を無効にするdeserialization.
  • JsonReader: あるいは、文字列から直接解析する場合は、JsonReader を作成し、その DateParseHandling プロパティを手動で None に設定してから、それを JObject.Load.
日付の逆シリアル化を無効にすると、JSON 内の日付文字列の元の形式を維持できます。データ。

以上がJson.NET で DateTime 逆シリアル化を無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート