ホームページ > バックエンド開発 > C++ > Json.NET の JObject.Parse を使用するときに DateTime 逆シリアル化を防ぐ方法は?

Json.NET の JObject.Parse を使用するときに DateTime 逆シリアル化を防ぐ方法は?

DDD
リリース: 2025-01-03 08:11:39
オリジナル
968 人が閲覧しました

How to Prevent DateTime Deserialization When Using Json.NET's JObject.Parse?

Json.NET の JObject.Parse メソッドで DateTime 逆シリアル化を無効にする

JSON データ処理のコンテキストでは、Json.NET はデータ オブジェクトの解析と逆シリアル化に不可欠なライブラリです。 。 JSON 文字列を解析するときに発生する一般的な問題の 1 つは、DateTime 値の自動逆シリアル化です。特定のシナリオでは、この逆シリアル化を防止し、代わりに生の文字列表現を取得することが望ましい場合があります。

問題を説明するには、次の JSON 文字列を考えてみましょう。

{
  "time": "2012-08-08T01:54:45.3042880+00:00"
}
ログイン後にコピー

Json を使用する場合.NET の JObject.Parse メソッドを使用してこの文字列を解析すると、time プロパティが自動的に DateTime オブジェクトに逆シリアル化されます。この動作は、さらなる処理に生の文字列表現が必要な場合に問題となる可能性があります。

日付の逆シリアル化の防止

JObject.Parse での日付の自動変換を無効にするには、JsonReader を利用できます。 .DateParseHandling プロパティ。このプロパティを使用すると、解析プロセス中に日付をどのように処理するかを指定できます。これを DateParseHandling.None に設定すると、日付を文字列として扱い、DateTime オブジェクトに変換しないように Json.NET に指示できます。

次のコードは、これを実現する方法を示しています。

using(JsonReader reader = new JsonTextReader(new StringReader(jsonString))) {
    reader.DateParseHandling = DateParseHandling.None;
    JObject o = JObject.Load(reader);
}
ログイン後にコピー

このコードでは、まず、提供された JSON 文字列を使用して JsonReader オブジェクトを作成します。次に、JSON データを JObject にロードする前に、DateParseHandling プロパティを DateParseHandling.None に設定します。その結果、time プロパティは生の文字列として解析され、それに応じてアクセスできるようになります。

結論

JsonReader.DateParseHandling プロパティを利用することで、日付の逆シリアル化を効果的に無効にすることができます。 Json.NET の JObject.Parse メソッド。これにより、日付の生の文字列表現を取得できるようになり、さまざまなシナリオでのデータの処理と処理をより詳細に制御できるようになります。

以上がJson.NET の JObject.Parse を使用するときに DateTime 逆シリアル化を防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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