JsonConvert.DeserializeObject est un outil puissant pour convertir des données JSON en objets C#. Cependant, lorsque vous essayez de désérialiser JSON en une classe POCO (Plain Old CLR Object) contenant une collection ou des objets imbriqués, une erreur peut se produire.
Un problème courant rencontré lors de l'utilisation de JsonConvert.DeserializeObject est l'incapacité de désérialiser un tableau JSON en une collection fortement typée. Cette erreur provient de la différence fondamentale entre les tableaux JSON et les structures de collection .NET.
Dans l'extrait de code fourni, la propriété Accounts est déclarée comme List
Pour résoudre ce problème, vous devez définir une classe personnalisée Account pour représenter les comptes individuels et annoter la propriété Accounts avec l'attribut [JsonProperty] pour spécifier le nom de la propriété correspondante dans la réponse JSON :
<code class="language-csharp">public class Account { public string github; } [JsonProperty("accounts")] public Account Accounts { get; set; }</code>
De plus, l'attribut JsonProperty peut être utilisé dans la classe User pour lier explicitement les propriétés à leurs noms de propriété JSON respectifs, garantissant ainsi un mappage transparent :
<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>
Avec ces modifications implémentées, JsonConvert.DeserializeObject peut facilement désérialiser les réponses JSON en objets User fortement typés, y compris la propriété Accounts renseignée avec le compte associé correspondant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!