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
Freigeben: 2025-01-13 19:12:44
Original
893 Leute haben es durchsucht

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

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

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!

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