Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich untergeordnete JSON-Objekte mit dynamischen Schlüsselnamen in C#?

Wie deserialisiere ich untergeordnete JSON-Objekte mit dynamischen Schlüsselnamen in C#?

DDD
DDDOriginal
2025-01-13 19:12:44900Durchsuche

How to Deserialize JSON Child Objects with Dynamic Key Names in C#?

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!

Stellungnahme:
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