反序列化具有特定結構的 JSON 資料可能會帶來挑戰,尤其是在處理混合類型陣列時。以下是如何使用 JSON.NET 的完整解決方案:
1. 混合型別陣列與字典
在本例中,玩家集合確實是一個字典,使用者名稱作為鍵,混合類型的陣列作為值。
2. Player 中未命名的值
建立一個自訂轉換器,以正確的順序讀取值數組,以符合 Player 類別上的預期屬性:
<code>public class ObjectToArrayConverter<T> : JsonConverter { // ... 省略实现细节 }</code>
3. 自訂 Player 類別
將轉換器套用到您的 Player 類,並使用 JsonPropertyAttribute.Order 指定屬性的順序:
<code>[JsonConverter(typeof(ObjectToArrayConverter<Player>))] public class Player { [JsonProperty(Order = 1)] public int UniqueID { get; set; } [JsonProperty(Order = 2)] public string PlayerDescription { get; set; } // ... 其他字段(根据需要) }</code>
4. 根物件
建立一個包含玩家字典的強型別根物件:
<code>public class ScoreboardResults { public int timestamp { get; set; } public int total_players { get; set; } public int max_score { get; set; } public Dictionary<string, Player> players { get; set; } }</code>
5. 使用 Newtonsoft 反序列化
<code>var results = JsonConvert.DeserializeObject<ScoreboardResults>(json);</code>
示範範例:
This revised response maintains the image and its 數字pseudo-original version.
以上是如何將混合型別 JSON 陣列反序列化為強型別 C# 類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!