首頁 >後端開發 >C++ >如何將混合型別 JSON 陣列反序列化為強型別 C# 類別?

如何將混合型別 JSON 陣列反序列化為強型別 C# 類別?

Linda Hamilton
Linda Hamilton原創
2025-01-24 04:16:07157瀏覽

How to Deserialize a Mixed-Type JSON Array into a Strongly Typed C# Class?

將具有固定模式的值數組反序列化到強型別資料類

反序列化具有特定結構的 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn