ホームページ >バックエンド開発 >C++ >JSON.NET を使用して JSON を C# に逆シリアル化するときに欠落データを適切に処理する方法

JSON.NET を使用して JSON を C# に逆シリアル化するときに欠落データを適切に処理する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-26 16:26:12496ブラウズ

How to Gracefully Handle Missing Data When Deserializing JSON to C# Using JSON.NET?

JSON.NET を使用した JSON データの C# への逆シリアル化: 不完全な JSON 構造の処理

JSON データと C# クラスを扱うとき、C# クラスで定義されたすべてのプロパティが含まれていない可能性のある JSON 構造に遭遇することがよくあります。 JSON.NET を使用してこのような JSON データを逆シリアル化するには、欠落データを適切に処理する強力な方法が必要です。

Json.NET は、この問題に対する便利な解決策を提供します。その高度な機能を活用することで、不足しているプロパティをシームレスに処理しながら、JSON データを C# クラスに逆シリアル化できます。

JSON から C# クラスを作成する

まず、JSON2CSharp.com などのオンライン ツールを使用して、JSON 構造から C# クラスを生成します。これにより、JSON データ構造を正確に表す C# クラスのセットが作成されます。

JSON データを逆シリアル化する

C# クラスを取得したら、JSON.NET が提供する JsonConvert クラスを使用して、JSON データをこれらのクラスに逆シリアル化できます。次のコードはこれを示しています:

<code class="language-csharp">var myJson = @"{
    ""givenname"": ""Robert"",
    ""passwordexpired"": ""20091031041550Z"",
    ""accountstatus"": [""active""],
    ""accountstatusexpiration"": [""20100612000000Z""],
    ""employeeid"": [""999777666""],
    ""sn"": [""Johnson""]
}";

var rootObject = JsonConvert.DeserializeObject<rootobject>(myJson);</code>

JsonConvert.DeserializeObject を使用すると、JSON データを RootObject クラスのインスタンスに直接逆シリアル化できます。このオブジェクトには、JSON データに存在するすべてのプロパティが含まれます。

欠損データの処理

JSON データに欠落している属性がある場合、Json.NET は C# クラスの対応する属性にデフォルト値を自動的に割り当てます。たとえば、JSON データに所属プロパティが欠落している場合、RootObject の Affiliation プロパティは空の配列に初期化されます。

カスタマイズされたデフォルト値

必要に応じて、以下に示すように、DefaultValueAttribute 属性を使用して、欠落している属性に割り当てられたデフォルト値をカスタマイズできます。

<code class="language-csharp">[DefaultValue("N/A")]
public string Affiliation { get; set; }</code>

結論

JSON.NET と推奨される方法を使用すると、欠落データを適切に処理しながら、JSON データを C# クラスに逆シリアル化することが簡単かつ強力なプロセスになります。これにより、異なるシステムやアプリケーション間での効率的かつ効果的なデータ交換が可能になります。

以上がJSON.NET を使用して JSON を C# に逆シリアル化するときに欠落データを適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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