Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich JSON-Arrays mithilfe von JsonConvert.DeserializeObject in C#-Sammlungen?
JsonConvert.DeserializeObject ist ein leistungsstarkes Tool zum Konvertieren von JSON-Daten in C#-Objekte. Beim Versuch, JSON in eine POCO-Klasse (Plain Old CLR Object) zu deserialisieren, die eine Sammlung oder verschachtelte Objekte enthält, kann jedoch ein Fehler auftreten.
Ein häufiges Problem bei der Verwendung von JsonConvert.DeserializeObject ist die Unfähigkeit, ein JSON-Array in eine stark typisierte Sammlung zu deserialisieren. Dieser Fehler ist auf den grundlegenden Unterschied zwischen JSON-Arrays und .NET-Sammlungsstrukturen zurückzuführen.
Im bereitgestellten Codeausschnitt ist die Accounts-Eigenschaft als Liste deklariert
Um dieses Problem zu lösen, müssen Sie eine benutzerdefinierte Klasse „Account“ definieren, um einzelne Konten darzustellen, und die Accounts-Eigenschaft mit dem Attribut [JsonProperty] annotieren, um den entsprechenden Eigenschaftsnamen in der JSON-Antwort anzugeben:
<code class="language-csharp">public class Account { public string github; } [JsonProperty("accounts")] public Account Accounts { get; set; }</code>
Darüber hinaus kann das JsonProperty-Attribut in der User-Klasse verwendet werden, um Eigenschaften explizit an ihre jeweiligen JSON-Eigenschaftsnamen zu binden und so eine nahtlose Zuordnung sicherzustellen:
<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>
Mit der Implementierung dieser Änderungen kann JsonConvert.DeserializeObject JSON-Antworten problemlos in stark typisierte Benutzerobjekte deserialisieren, einschließlich der Accounts-Eigenschaft, die mit dem entsprechenden zugehörigen Konto gefüllt ist.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON-Arrays mithilfe von JsonConvert.DeserializeObject in C#-Sammlungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!