Verschachtelte JSON-Deserialisierung mit typisierten C#-Objekten
Deserialisierung von verschachteltem JSON in ein flaches Dictionary
ObjectAsPrimitiveConverter
Der folgende Code stellt einen benutzerdefinierten JsonConverter mit dem Namen ObjectAsPrimitiveConverter:
bereitpublic class ObjectAsPrimitiveConverter : JsonConverter<object> { // ... (converter implementation) }
Konverter Konfiguration
Um den Konverter zu konfigurieren, geben Sie das gewünschte FloatFormat (double oder decimal), UnknownNumberFormat (error oder JsonElement) und ObjectFormat (ExpandoObject oder Dictionary
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter(...) }, WriteIndented = true, };
Deserialisierung zu Objekt
Um verschachtelt zu deserialisieren JSON zu einem Objekt (oder dynamisch, wenn ExpandoObject verwendet wird), verwenden Sie:
dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
Anpassung
Der Konverter kann angepasst werden, um verschiedene numerische Typen und Objektformate zu unterstützen. Darüber hinaus kann es erweitert werden, um nicht unterstützte JSON-Nummern eleganter zu verarbeiten.
Fazit
Durch die Implementierung eines benutzerdefinierten JsonConverters können Sie eine typspezifische Deserialisierung verschachtelter JSON-Objekte erreichen in eine hierarchische Datenstruktur mit geeigneten C#-Typen für jede Eigenschaft.
Das obige ist der detaillierte Inhalt vonWie kann ich verschachteltes JSON in typisierte C#-Objekte deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!