ホームページ > バックエンド開発 > C++ > JSON.NET を使用して JSON データを C# クラスに逆シリアル化し、欠落したデータを処理するにはどうすればよいですか?

JSON.NET を使用して JSON データを C# クラスに逆シリアル化し、欠落したデータを処理するにはどうすればよいですか?

DDD
リリース: 2025-01-26 16:46:15
オリジナル
497 人が閲覧しました

How Can I Deserialize JSON Data into C# Classes Using JSON.NET and Handle Missing Data?

JSON.NET を使用して JSON を C# クラスに逆シリアル化する: 総合ガイド

JSON データを C# クラスに逆シリアル化することは、Web サービスまたは API を操作するときに頻繁に行われるタスクです。このガイドでは、JSON に特定のフィールドが欠けている可能性がある状況に対処する戦略など、JSON データを効果的に逆シリアル化するための段階的なアプローチを提供します。

1. C# クラス構造の定義:

まず、JSON データの構造をミラーリングする C# クラスを作成する必要があります。 例:

<code class="language-csharp">public class MyAccount
{
    [JsonProperty(PropertyName = "username")]
    public string UserID { get; set; }
    // ... other properties ...
    [JsonProperty(PropertyName = "employeeid")]
    public string EmployeeID { get; set; }
}</code>
ログイン後にコピー

JsonProperty 属性は、JSON プロパティ名が C# プロパティ名と一致することを保証します。

2. JSON.NET による逆シリアル化:

JSON.NET の JsonConvert.DeserializeObject メソッドを利用して、JSON 文字列を C# オブジェクトに変換します。

<code class="language-csharp">string json = "{ \"givenname\": [\"Robert\"], \"passwordexpired\": \"20091031041550Z\", \"accountstatus\": [\"active\"] }";
var rootObject = JsonConvert.DeserializeObject<MyAccount>(json);</code>
ログイン後にコピー

3.欠落データの管理:

JSON データには、C# クラスで定義されたすべてのフィールドが含まれていない場合があります。 JSON.NET はこれを適切に処理します:

  • 自動 Null 割り当て: 欠落しているプロパティには、自動的に null 値が割り当てられます。
  • カスタムデフォルト値: さらに制御するには、JSON にプロパティが欠落している場合、DefaultValueAttribute を使用してプロパティのデフォルト値を指定します。

データが欠落している JSON の例:

次の JSON には employeeid フィールドがありません:

<code class="language-json">{
    "givenname": ["Robert"],
    "passwordexpired": "20091031041550Z",
    "accountstatus": ["active"]
}</code>
ログイン後にコピー

結果:

逆シリアル化後、rootObject.EmployeeIDnull になります。

結論:

この方法では、C# で効率的かつ堅牢な JSON 逆シリアル化が可能になり、欠落データを簡単に処理できます。 JSON.NET の機能を使用すると、アプリケーションは不完全な JSON 構造やさまざまな JSON 構造を適切に管理できます。

以上がJSON.NET を使用して JSON データを C# クラスに逆シリアル化し、欠落したデータを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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