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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 07:10:40243ブラウズ

How Can I Disable Date Conversion During Deserialization in Json.NET?

Json.NET での逆シリアル化処理: 日付変換の無効化

特定のシナリオでは、Json.NET が自動的に変換しないようにすることが望ましい場合があります。逆シリアル化中の日付。これを実現するには、JsonSerializer の DateParseHandling プロパティを利用できます。

次のコードを考えてみましょう:

string s = "2012-08-08T01:54:45.3042880+00:00";

JObject j1 = JObject.FromObject(
    new
    {
        time = s
    },
    new JsonSerializer { DateParseHandling = DateParseHandling.None }
);

ここでは、DateParseHandling プロパティを次のように設定することで、日付を解析しないように指定します。なし。その結果、 o 変数は元の日付値を含む文字列のままになります。

残念ながら、JObject.Parse() メソッドには日付解析を制御する直接的な方法はありません。ただし、基礎となる JsonReader を活用して目標を達成することはできます。

using (JsonReader reader = new JsonTextReader(new StringReader(j1.ToString())))
{
    reader.DateParseHandling = DateParseHandling.None;
    JObject o = JObject.Load(reader);
}

このコードでは、必要な日付解析オプションを備えた JsonReader を作成し、それを使用して JSON 文字列を JObject に逆シリアル化します。このアプローチにより、日付のカスタム解析動作を指定でき、日付が DateTime オブジェクトではなく文字列として扱われるようになります。

逆シリアル化中に日付を変換するデフォルトの動作は多くの場合便利ですが、知っておくことが重要です。 Json.NET には、アプリケーションの特定の要件を満たすためにこの動作をカスタマイズするためのオプションが用意されています。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。