Untergeordnete Objekte mit dynamischen Schlüsselnamen deserialisieren
Beim Umgang mit JSON-Daten, die Unterobjekte mit dynamischen Schlüsselnamen (normalerweise numerische Schlüssel) enthalten, kann es schwierig sein, diese mit Standard-JSON.NET-Techniken zu deserialisieren.
Um dieses Problem zu lösen, können Sie einen benutzerdefinierten Konverter erstellen, der dynamische Schlüsselnamen verarbeitet und die Werte in einen typisierten Container deserialisiert. Der folgende benutzerdefinierte Konverter TypedExtensionDataConverter<T>
implementiert diese Funktionalität:
<code class="language-csharp">public class TypedExtensionDataConverter<T> : JsonConverter { // ... (代码已省略) }</code>
Mit diesem Konverter kann dann in der Klassenstruktur angegeben werden, welche Eigenschaft das Unterobjekt mit dem dynamischen Schlüsselnamen enthält:
<code class="language-csharp">[JsonConverter(typeof(TypedExtensionDataConverter<User>))] class User { // ... (代码已省略) }</code>
Mit diesem Ansatz können Unterobjekte deserialisiert und in einem typisierten Container (in diesem Fall Dictionary<string, User>
) gespeichert werden, was eine strukturierte und leicht zugängliche Möglichkeit bietet, mit den Daten zu arbeiten.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich untergeordnete JSON-Objekte mit dynamischen Schlüsselnamen in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!