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 サイトの他の関連記事を参照してください。