JsonConvert.DeserializeObject は、JSON データを C# オブジェクトに変換するための強力なツールです。ただし、JSON をコレクションまたはネストされたオブジェクトを含む POCO (Plain Old CLR Object) クラスに逆シリアル化しようとすると、エラーが発生することがあります。
JsonConvert.DeserializeObject を使用するときに発生する一般的な問題は、JSON 配列を厳密に型指定されたコレクションに逆シリアル化できないことです。このエラーは、JSON 配列と .NET コレクション構造の基本的な違いに起因します。
提供されたコード スニペットでは、Accounts プロパティは List
この問題を解決するには、個々のアカウントを表すカスタム クラス Account を定義し、Accounts プロパティに [JsonProperty] 属性の注釈を付けて、JSON 応答で対応するプロパティ名を指定する必要があります。
<code class="language-csharp">public class Account { public string github; } [JsonProperty("accounts")] public Account Accounts { get; set; }</code>
さらに、User クラスで JsonProperty 属性を使用して、プロパティをそれぞれの JSON プロパティ名に明示的にバインドし、シームレスなマッピングを確保できます。
<code class="language-csharp">[JsonProperty("username")] public string Username { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("location")] public string Location { get; set; }</code>
これらの変更が実装されると、JsonConvert.DeserializeObject は、対応する関連アカウントが設定された Accounts プロパティを含む、厳密に型指定された User オブジェクトに JSON 応答を簡単に逆シリアル化できます。
以上がJsonConvert.DeserializeObject を使用して JSON 配列を C# コレクションに逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。