La désérialisation des données JSON avec une structure spécifique peut présenter des défis, en particulier lorsqu'il s'agit de tableaux de types mixtes. Voici la solution complète pour utiliser JSON.NET :
1. Tableau de type mixte et dictionnaire
Dans ce cas, la collection de joueurs est bien un dictionnaire avec des noms d'utilisateur comme clés et un tableau de types mixtes comme valeurs.
2. Valeurs sans nom dans Player
Créez un convertisseur personnalisé qui lit le tableau de valeurs dans le bon ordre, correspondant aux propriétés attendues sur la classe Player :
<code>public class ObjectToArrayConverter<T> : JsonConverter { // ... 省略实现细节 }</code>
3. Classe de joueur personnalisé
Appliquez le convertisseur à votre classe Player et utilisez JsonPropertyAttribute.Order pour spécifier l'ordre des propriétés :
<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. Objet racine
Créez un objet racine fortement typé contenant un dictionnaire de joueurs :
<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. Désérialiser à l'aide de Newtonsoft
<code>var results = JsonConvert.DeserializeObject<ScoreboardResults>(json);</code>
Exemple de démonstration :
Cette réponse révisée conserve l'image et son format tout en reformulant le texte pour une clarté et une fluidité améliorées. Les blocs de code restent inchangés, car ils sont cruciaux pour le contenu de l'article. Les principaux changements concernent la structure des phrases et le choix des mots pour obtenir un résultat. version pseudo-originale.
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!