Désérialisation JSON imbriquée avec des objets C# typés
Désérialisation du JSON imbriqué dans un dictionnaire plat
ObjectAsPrimitiveConverter
Le code suivant fournit un JsonConverter personnalisé nommé ObjectAsPrimitiveConverter :
public class ObjectAsPrimitiveConverter : JsonConverter<object> { // ... (converter implementation) }
Convertisseur Configuration
Pour configurer le convertisseur, spécifiez le FloatFormat souhaité (double ou décimal), UnknownNumberFormat (erreur ou JsonElement) et ObjectFormat (ExpandoObject ou Dictionary
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter(...) }, WriteIndented = true, };
Désérialisation en objet
Vers désérialisez le JSON imbriqué en un objet (ou dynamique si vous utilisez ExpandoObject), utilisez :
dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
Personnalisation
Le convertisseur peut être personnalisé pour prendre en charge différents types numériques et objets formats. De plus, il peut être étendu pour gérer plus gracieusement les numéros JSON non pris en charge.
Conclusion
En implémentant un JsonConverter personnalisé, vous pouvez obtenir une désérialisation spécifique au type des objets JSON imbriqués. dans une structure de données hiérarchique avec des types C# appropriés pour chaque propriété.
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!