Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich untergeordnete Objekte mit dynamischen numerischen Schlüsselnamen in JSON mithilfe von Newtonsoft.Json.Net?
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.
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.
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>
Die Benutzerklasse bleibt unverändert.
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>
Die UserTable-Eigenschaft im Users-Objekt enthält jetzt das deserialisierte User-Objekt und ermöglicht den Zugriff auf seine Daten.
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!