Deserialisierung des JSON-Arrays in erwartetes Objekt fehlgeschlagen: „Array kann nicht in Objekt deserialisiert werden“
Der Versuch, ein JSON-Array in ein Objekt einer bestimmten Klasse zu deserialisieren, kann zu folgendem Fehler führen: „Ein JSON-Array (z. B. [1,2,3]) kann nicht deserialisiert werden, um ‚MyClass‘ einzugeben, da dieser Typ JSON-Objekte erfordert.“ (z. B. {"name": "Wert"}) können korrekt deserialisiert werden. "
Dieser Fehler weist darauf hin, dass die JSON-Daten im Array-Format vorliegen, während die Zielklasse ein Einzelobjektformat erwartet. Um dieses Problem zu beheben, beachten Sie Folgendes:
1. JSON-Array in Sammlung deserialisieren:
Wenn Sie ein JSON-Array in eine Sammlung von Objekten deserialisieren möchten, können Sie den Code wie folgt ändern:
var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);
In diesem Fall wird das JSON-Array in eine Liste von RetrieveMultipleResponse-Objekten deserialisiert.
2. Stellen Sie sicher, dass der JSON richtig als Objekt formatiert ist:
Alternativ können Sie, wenn Sie die JSON-Daten in ein einzelnes Objekt deserialisieren müssen, überprüfen, ob das JSON korrekt formatiert ist. JSON-Zeichenfolgen sollten in geschweifte Klammern ({}) eingeschlossen werden und Schlüssel-Wert-Paare enthalten. Das folgende JSON-Beispiel stellt ein gültiges Objekt dar:
{ "Attributes": [ ... ], "Name": "account", "Id": "1" }
Nachdem Sie das JSON in ein Objekt formatiert haben, können Sie es mit dem folgenden Code deserialisieren:
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
Weitere Optionen:
[JsonArray]
-Attribut hinzufügen, um die Deserialisierung aus einem JSON-Array zu erzwingen. Das obige ist der detaillierte Inhalt vonWarum scheitert JSON -Deserialisierung, wenn ein Array als Objekt erwartet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!