Heim >Backend-Entwicklung >C++ >Warum schlägt meine JSON-Deserialisierung mit der Meldung „Das aktuelle JSON-Objekt kann nicht deserialisiert werden…' fehl?
JSON-Deserialisierung fehlgeschlagen: Das JSON-Objekt konnte nicht in eine Liste von Objekten analysiert werden
Beim Versuch, eine JSON-Zeichenfolge in eine benutzerdefinierte Liste von Objekten zu deserialisieren, tritt möglicherweise die Fehlermeldung auf: „Das aktuelle JSON-Objekt (z. B. {"name":"value"}
) kann nicht deserialisiert werden, um „System.Collections.Generic“ .List einzugeben1',因为该类型需要一个JSON数组(例如:
[1,2,3]`) korrekt deserialisiert werden.
Dieser Fehler wird dadurch verursacht, dass die JSON-Struktur nicht dem erwarteten Format entspricht. JSON-Arrays werden zur Darstellung von Listen oder Sammlungen verwendet, während JSON-Objekte zur Darstellung von Schlüssel-Wert-Paaren verwendet werden. In diesem Beispiel enthält die JSON-Zeichenfolge ein einzelnes Objekt, dessen Eigenschaft „data“ ein Array von Objekten ist. Um dieses Problem zu lösen, müssen Sie die JSON-Zeichenfolge in eine geeignete Klassenstruktur deserialisieren.
JSON-Struktur verstehen
Die bereitgestellte JSON-String-Struktur lautet wie folgt:
<code class="language-json">{"data":[{"target_id":9503123,"target_type":"user"}]}</code>
Es enthält ein einzelnes Objekt, dessen „Daten“-Eigenschaft ein Array von Objekten ist.
Korrekter Deserialisierungscode
Die Codezeile, die den Fehler verursacht, ist:
<code class="language-csharp">List<rootobject> datalist = JsonConvert.DeserializeObject<list>(jsonstring);</code>
Diese Zeile versucht, eine JSON-Zeichenfolge in eine Liste von RootObject-Objekten zu deserialisieren. Der JSON-String enthält jedoch ein einzelnes Objekt und keine Liste von Objekten. Um diesen Fehler zu beheben, ändern Sie den Code in:
<code class="language-csharp">RootObject datalist = JsonConvert.DeserializeObject<rootobject>(jsonstring);</code>
Dieser korrigierte Code deserialisiert die JSON-Zeichenfolge in ein einzelnes RootObject-Objekt, das korrekt mit der JSON-Struktur übereinstimmt.
Fazit
Sie können den Fehler „Das aktuelle JSON-Objekt konnte nicht deserialisiert werden“ beheben, indem Sie sicherstellen, dass der Code korrekt mit der JSON-Struktur übereinstimmt. Das Verständnis des erwarteten Formats einer JSON-Zeichenfolge ist für eine erfolgreiche Deserialisierung von entscheidender Bedeutung.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine JSON-Deserialisierung mit der Meldung „Das aktuelle JSON-Objekt kann nicht deserialisiert werden…' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!