JSON-Deserialisierung bekannter und unbekannter Felder in C#
Wenn das JSON-Ergebnis bekannte und unbekannte Felder enthält, ist es normalerweise erforderlich, die unbekannten Felder einem Wörterbuch zuzuordnen, um den Zugriff und die Änderung zu erleichtern. Obwohl es mehrere Möglichkeiten gibt, dies zu erreichen, bietet die Verwendung von JsonExtensionDataAttribute
in JSON .NET eine praktische Lösung.
JsonExtensionDataAttribute
können Sie ein Attribut angeben, das zusätzliche unbekannte Felder enthält. Ein Beispiel ist wie folgt:
<code class="language-csharp">public class Product { public string id { get; set; } public string name { get; set; } [JsonExtensionData] private IDictionary<string, JToken> _extraFields; }</code>
Mit diesem Attribut werden unbekannte Felder im _extraFields
-Attribut gespeichert, bei dem es sich um ein Wörterbuch aus Zeichenfolgenschlüsseln (Feldnamen) und JToken
-Werten (Feldwerten) handelt. Dadurch können Sie problemlos auf unbekannte Felder in Ihrem Code zugreifen und diese ändern.
Bitte beachten Sie, dass diese Methode JSON .NET v5 Version 5 oder höher erfordert. Wenn Sie eine frühere Version verwenden, möchten Sie möglicherweise andere im Originalartikel erwähnte Optionen erkunden, z. B. die Verwendung eines benutzerdefinierten Vertragsparsers oder eines benutzerdefinierten Konverters.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON mit bekannten und unbekannten Feldern in C# deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!