Heim > Backend-Entwicklung > C++ > Wie deserialisiere ich untergeordnete Objekte mit dynamischen numerischen Schlüsselnamen in JSON mithilfe von Newtonsoft.Json.Net?

Wie deserialisiere ich untergeordnete Objekte mit dynamischen numerischen Schlüsselnamen in JSON mithilfe von Newtonsoft.Json.Net?

Barbara Streisand
Freigeben: 2025-01-13 19:00:43
Original
200 Leute haben es durchsucht

How to Deserialize Child Objects with Dynamic Numeric Key Names in JSON using Newtonsoft.Json.Net?

Verwenden Sie Newtonsoft.Json.Net, um Unterobjekte mit dynamischen numerischen Schlüsselnamen zu deserialisieren

Das Deserialisieren von JSON-Daten mit dynamischen Schlüsselnamen kann eine Herausforderung sein, insbesondere wenn die Schlüssel numerisch sind. So lösen Sie dieses Problem mit Newtonsoft.Json.Net.

Die bereitgestellte JSON-Struktur enthält ein übergeordnetes „Benutzer“-Objekt mit bekannten und unbekannten Eigenschaften. Um unbekannte Eigenschaften zu berücksichtigen, ist ein benutzerdefinierter Konverter erforderlich.

Benutzerdefinierter Konverter

Die TypedExtensionDataConverter-Klasse ist ein benutzerdefinierter JSON-Konverter, der die Deserialisierung von Objekten mit dynamischen Eigenschaften übernimmt. Es stellt sicher, dass unbekannte Eigenschaften in einen typisierten Container deserialisiert werden, in diesem Fall ein Wörterbuch von Benutzerobjekten.

Der Konverter verwendet das JsonTypedExtensionDataAttribute-Attribut, um Attribute zu identifizieren, die dynamische Daten enthalten sollen.

Geänderte Klassendefinition

Um benutzerdefinierte Konverter zu verwenden, wurden die Klassen „Benutzer“ und „Benutzer“ geändert, um Eigenschaften und Konverter zu enthalten.

Benutzerklasse:

<code>[JsonConverter(typeof(TypedExtensionDataConverter<Users>))]
class Users
{
    ...
    [JsonTypedExtensionData]
    public Dictionary<string, User> UserTable { get; set; }
}</code>
Nach dem Login kopieren

Die Benutzerklasse bleibt unverändert.

Anleitung

Mit einem benutzerdefinierten Konverter und einer geänderten Klassendefinition kann die Deserialisierung wie folgt durchgeführt werden:

<code>string json = @"...与之前相同的 JSON...";

RootObject root = JsonConvert.DeserializeObject<RootObject>(json);</code>
Nach dem Login kopieren

Die UserTable-Eigenschaft im Users-Objekt enthält jetzt das deserialisierte User-Objekt und ermöglicht den Zugriff auf seine Daten.

Fazit

Durch die Verwendung eines benutzerdefinierten JSON-Konverters können Sie Unterobjekte mit dynamischen numerischen Schlüsselnamen deserialisieren und so komplexe JSON-Strukturen nahtlos verarbeiten.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich untergeordnete Objekte mit dynamischen numerischen Schlüsselnamen in JSON mithilfe von Newtonsoft.Json.Net?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage