Heim >Backend-Entwicklung >C++ >Wie kann ich JSON mit unbekannten Feldern mithilfe des ExtensionDataAttribute von JSON .NET deserialisieren?
Wenn das JSON-Ergebnis bekannte und unbekannte Felder enthält und die unbekannten Feldnamen unvorhersehbar sind, müssen diese unbekannten Felder zum Zugriff und zur Änderung einem Wörterbuch zugeordnet werden. Hierzu können wir das Attribut JsonExtensionDataAttribute
in JSON .NET verwenden.
Bedenken Sie die folgende Klassenstruktur:
<code class="language-csharp">public class Product { public string id { get; set; } public string name { get; set; } // 额外字段 [JsonExtensionData] private IDictionary<string, JToken> _extraStuff; }</code>
Durch Anwenden von JsonExtensionDataAttribute
auf das Attribut _extraStuff
können wir JSON .NET anweisen, alle unbekannten Felder diesem Wörterbuch zuzuordnen. JToken
stellt die JSON-Rohdaten für dieses bestimmte Feld dar.
Bei Verwendung dieser Klasse zum Deserialisieren von JSON:
<code class="language-json">{ "id": "7908", "name": "product name", "unknown_field_1": "some value", "unknown_field_2": "some value" }</code>Das
-Wörterbuch im Product
_extraStuff
-Objekt wird automatisch mit den folgenden Schlüssel-Wert-Paaren gefüllt:
<code class="language-csharp">{ {"unknown_field_1", "some value"}, {"unknown_field_2", "some value"} }</code>
Dieser Ansatz bietet eine effiziente Möglichkeit, unbekannte Felder zu verarbeiten, ohne dass ein benutzerdefinierter Vertragsparser oder eine dynamische Objektvererbung erforderlich ist.
Hinweis: Die Eigenschaft JsonExtensionDataAttribute
ist in JSON .NET v5 Version 5 und höher verfügbar.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON mit unbekannten Feldern mithilfe des ExtensionDataAttribute von JSON .NET deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!