La désérialisation du tableau JSON en objet attendu a échoué : "Impossible de désérialiser le tableau en objet"
Tenter de désérialiser un tableau JSON en un objet d'une classe spécifique peut entraîner l'erreur suivante : "Impossible de désérialiser un tableau JSON (par exemple [1,2,3]) pour taper 'MyClass' car ce type nécessite des objets JSON. (tel que {"name":"value"}) peut être désérialisé correctement."
Cette erreur indique que les données JSON sont au format tableau, alors que la classe cible attend un format d'objet unique. Pour résoudre ce problème, considérez ce qui suit :
1. Désérialisez le tableau JSON en collection :
Si vous souhaitez désérialiser un tableau JSON en une collection d'objets, vous pouvez modifier le code comme suit :
var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);
Dans ce cas, le tableau JSON sera désérialisé en une liste d'objets RetrieveMultipleResponse.
2. Assurez-vous que le JSON est correctement formaté en tant qu'objet :
Alternativement, si vous devez désérialiser les données JSON en un seul objet, vous pouvez vérifier que le JSON est correctement formaté. Les chaînes JSON doivent être placées entre accolades ({}) et doivent contenir des paires clé-valeur. L'exemple JSON suivant représente un objet valide :
{ "Attributes": [ ... ], "Name": "account", "Id": "1" }
Après avoir formaté le JSON en objet, vous pouvez utiliser le code suivant pour le désérialiser :
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
Autres options :
[JsonArray]
à la classe cible pour forcer la désérialisation à partir d'un tableau JSON. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!