Dépannage de l'erreur « Impossible de désérialiser l'objet JSON »
Cette erreur courante de désérialisation JSON, « Impossible de désérialiser l'objet JSON actuel », provient d'un écart entre la structure des données JSON et le type de données attendu dans votre code de désérialisation. Le message d'erreur suggère une incompatibilité : le JSON est probablement un objet, mais votre code tente de le désérialiser sous forme de tableau, ou vice-versa.
Corriger la désérialisation
Le problème vient de la tentative de désérialisation d'un objet JSON dans une liste. Le JSON fourni est clairement un objet, pas un tableau. La solution consiste à ajuster votre désérialisation pour qu'elle corresponde à la structure JSON. Au lieu de désérialiser en List<RootObject>
, désérialisez directement dans une instance RootObject
.
Code incorrect (tentative de désérialisation dans une liste) :
<code class="language-csharp">List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonString);</code>
Code corrigé (désérialisation en un seul RootObject) :
<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonString);</code>
Ce code corrigé reflète avec précision la structure de l'objet JSON, éliminant ainsi l'erreur de désérialisation. N'oubliez pas de vous assurer que votre classe RootObject
correspond correctement aux propriétés de l'objet JSON. Si le JSON contient une propriété contenant un tableau d'objets Datum
, votre classe RootObject
doit avoir une propriété correspondante (par exemple, List<Datum> data
) pour s'adapter à cela.
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!