Maison >développement back-end >C++ >Pourquoi ma désérialisation JSON échoue-t-elle lorsqu'un tableau est attendu au lieu d'un objet?
La désérialisation du tableau JSON vers la classe attendue a échoué
Le message d'erreur indique que la chaîne JSON en cours de désérialisation est un tableau et que le type de cible de désérialisation RetrieveMultipleResponse
attend un objet JSON. Vous trouverez ci-dessous une description du problème et des solutions possibles :
Question :
La chaîne JSON fournie est un tableau d'objets JSON, comme indiqué par les crochets []
:
<code>[ { ... }, { ... }, { ... } ]</code>
Cependant, la classe RetrieveMultipleResponse
attend un seul objet JSON car ses attributs (attributs, nom et ID) sont définis sous forme de valeurs uniques plutôt que de tableaux.
Solution :
Pour résoudre ce problème, vous pouvez modifier votre code pour désérialiser la chaîne JSON en une collection d'objets RetrieveMultipleResponse
au lieu d'un seul objet. Voici un exemple :
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
En utilisant List<RetrieveMultipleResponse>
, vous indiquez que la chaîne JSON doit être un tableau d'objets RetrieveMultipleResponse
, permettant au processus de désérialisation de réussir.
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!