Heim >Backend-Entwicklung >C++ >Warum schlägt die JSON-Deserialisierung fehl, wenn versucht wird, ein Objekt in eine Liste zu konvertieren?

Warum schlägt die JSON-Deserialisierung fehl, wenn versucht wird, ein Objekt in eine Liste zu konvertieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-08 06:00:40777Durchsuche

Why Does JSON Deserialization Fail When Trying to Convert an Object to a List?

JSON-Deserialisierungsproblem: Objekt kann nicht in Liste konvertiert werden

Beim Versuch, ein JSON-Objekt in eine Liste benutzerdefinierter Objekte zu deserialisieren, stoßen Entwickler möglicherweise auf den Fehler: „Das aktuelle JSON-Objekt (zum Beispiel: {“name“: „value“}) kann nicht in den Typ „System.Collections“ deserialisiert werden .Generic.List`1[...]'". Dieses Problem tritt auf, wenn die JSON-Struktur nicht mit dem Ziel-Deserialisierungstyp übereinstimmt.

Bedenken Sie den folgenden Codeausschnitt:

<code class="language-csharp">string jsonstring = "{\"data\":[{\"target_id\":9503123,\"target_type\":\"user\"}]}";
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);</code>

In diesem Szenario ist der Ziel-Deserialisierungstyp List, der ein JSON-Array von RootObject-Objekten erwartet. Allerdings stellt die JSON-Zeichenfolge ein einzelnes RootObject-Objekt dar, das in einem Array mit dem Namen „data“ enthalten ist.

Lösung:

Um dieses Problem zu beheben, muss der Ziel-Deserialisierungstyp angepasst werden, um ihn an die JSON-Struktur anzupassen.

Korrekte Deserialisierung:

<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>

Durch die Änderung des Deserialisierungstyps in RootObject wird der Code nun an der JSON-Struktur ausgerichtet und der Deserialisierungsprozess wird erfolgreich ohne den oben genannten Fehler abgeschlossen. Wenn Sie auf target_id und target_type zugreifen müssen, müssen Sie das data-Objekt weiter verarbeiten, zum Beispiel: data.data[0].target_id.

Das obige ist der detaillierte Inhalt vonWarum schlägt die JSON-Deserialisierung fehl, wenn versucht wird, ein Objekt in eine Liste zu konvertieren?. 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