Heim > Backend-Entwicklung > C++ > Wie kann ich JSON mit unbekannten Feldern mithilfe des ExtensionDataAttribute von JSON .NET deserialisieren?

Wie kann ich JSON mit unbekannten Feldern mithilfe des ExtensionDataAttribute von JSON .NET deserialisieren?

DDD
Freigeben: 2025-01-18 09:21:10
Original
761 Leute haben es durchsucht

How Can I Deserialize JSON with Unknown Fields Using JSON .NET's ExtensionDataAttribute?

Verwenden Sie das ExtensionDataAttribute von JSON .NET, um JSON-Daten zu deserialisieren, die bekannte und unbekannte Felder enthalten

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage