Fehlerbehebung beim Fehler „JSON-Objekt kann nicht deserialisiert werden“
Dieser häufige JSON-Deserialisierungsfehler „Das aktuelle JSON-Objekt kann nicht deserialisiert werden“ ist auf eine Diskrepanz zwischen der Struktur der JSON-Daten und dem erwarteten Datentyp in Ihrem Deserialisierungscode zurückzuführen. Die Fehlermeldung deutet auf eine Nichtübereinstimmung hin: Der JSON ist wahrscheinlich ein Objekt, aber Ihr Code versucht, ihn als Array zu deserialisieren oder umgekehrt.
Deserialisierung korrigieren
Das Problem entsteht durch den Versuch, ein JSON-Objekt in eine Liste zu deserialisieren. Der bereitgestellte JSON ist eindeutig ein Objekt, kein Array. Die Lösung besteht darin, Ihre Deserialisierung an die JSON-Struktur anzupassen. Anstatt in List<RootObject>
zu deserialisieren, deserialisieren Sie direkt in eine RootObject
-Instanz.
Falscher Code (Versuch, in eine Liste zu deserialisieren):
<code class="language-csharp">List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonString);</code>
Korrigierter Code (Deserialisierung in ein einzelnes RootObject):
<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonString);</code>
Dieser korrigierte Code spiegelt die Objektstruktur des JSON genau wider und beseitigt so den Deserialisierungsfehler. Denken Sie daran, sicherzustellen, dass Ihre RootObject
-Klasse den Eigenschaften innerhalb des JSON-Objekts korrekt zugeordnet ist. Wenn das JSON eine Eigenschaft enthält, die ein Array von Datum
-Objekten enthält, sollte Ihre RootObject
-Klasse über eine entsprechende Eigenschaft (z. B. List<Datum> data
) verfügen, um dies zu berücksichtigen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich während der JSON-Deserialisierung die Fehlermeldung „Das aktuelle JSON-Objekt kann nicht deserialisiert werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!