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
値が割り当てられます。DefaultValueAttribute
を使用してプロパティのデフォルト値を指定します。データが欠落している JSON の例:
次の JSON には employeeid
フィールドがありません:
<code class="language-json">{ "givenname": ["Robert"], "passwordexpired": "20091031041550Z", "accountstatus": ["active"] }</code>
結果:
逆シリアル化後、rootObject.EmployeeID
は null
になります。
結論:
この方法では、C# で効率的かつ堅牢な JSON 逆シリアル化が可能になり、欠落データを簡単に処理できます。 JSON.NET の機能を使用すると、アプリケーションは不完全な JSON 構造やさまざまな JSON 構造を適切に管理できます。
以上がJSON.NET を使用して JSON データを C# クラスに逆シリアル化し、欠落したデータを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。