Heim >Backend-Entwicklung >C++ >Wie kann ein benutzerdefinierter JsonConverter mit unerwarteten Enum-Werten bei der JSON-Deserialisierung umgehen?
Überwindung unerwarteter JSON-Enum-Werte mit benutzerdefinierter Behandlung
Wenn Sie auf JSON-Daten stoßen, die Enum-Werte enthalten, die Ihre aktuellen Enum-Definitionen überschreiten, kann es zu Problemen kommen Ausnahmen während der Deserialisierung mit Json.net. Um dieses Problem zu beheben, ist die Erstellung eines benutzerdefinierten JsonConverters eine effektive Lösung.
TolerantEnumConverter: Ein flexibler Deserialisierungsansatz
Der TolerantEnumConverter ist ein benutzerdefinierter JsonConverter, der Flexibilität bei der Handhabung nicht erkannter Daten bietet Aufzählungswerte. Es folgt einem Entscheidungsbaum, um die geeignete Antwort zu bestimmen:
Vorteile und Implementierung
Verwendung Der TolerantEnumConverter bietet mehrere Vorteile:
Zu Wenn Sie den TolerantEnumConverter implementieren, fügen Sie ihn einfach als [JsonConverter]-Attribut zu Ihren Enum-Typen hinzu. Der in der Antwort bereitgestellte Code kann als Ausgangspunkt verwendet und an die Anforderungen Ihres Projekts angepasst werden.
Demonstration und Effekte
Die bereitgestellte Demo zeigt, wie der TolerantEnumConverter funktioniert verschiedene JSON-Enum-Werte, einschließlich gültiger, ungültiger und Nullwerte. Die Ergebnisse werden sowohl für NULL-fähige als auch für Nicht-NULL-fähige Enumerationen angezeigt. Dies zeigt die Fähigkeit des Konverters, Ausnahmen zu verhindern und gleichzeitig flexible Deserialisierungsergebnisse bereitzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ein benutzerdefinierter JsonConverter mit unerwarteten Enum-Werten bei der JSON-Deserialisierung umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!