JsonConvert.DeserializeObject是將JSON資料轉換為C#物件的有力工具。但是,當嘗試將JSON反序列化到包含集合或巢狀物件的POCO(普通舊CLR物件)類別時,可能會發生錯誤。
使用JsonConvert.DeserializeObject時遇到的一個常見問題是無法將JSON數組反序列化為強類型集合。此錯誤源自於JSON數組和.NET集合結構的根本差異。
在提供的程式碼片段中,Accounts屬性聲明為List
要解決此問題,必須定義一個自訂類別Account來表示各個帳戶,並使用[JsonProperty]屬性註解Accounts屬性以指定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可以輕鬆地將JSON回應反序列化為強型別User對象,包括使用對應的關聯帳號填入的Accounts屬性。
以上是如何使用 JsonConvert.DeserializeObject 將 JSON 陣列反序列化為 C# 集合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!