Maison >développement back-end >C++ >Pourquoi ma désérialisation JSON échoue-t-elle avec le message « Impossible de désérialiser l'objet JSON actuel » ?
Échec de la désérialisation JSON : impossible d'analyser l'objet JSON dans une liste d'objets
Lorsque vous essayez de désérialiser une chaîne JSON dans une liste personnalisée d'objets, vous pouvez rencontrer l'erreur : "Impossible de désérialiser l'objet JSON actuel (par exemple : {"name":"value"}
) pour taper 'System.Collections.Generic' .List1',因为该类型需要一个JSON数组(例如:
[1,2,3]`) pour être désérialisé correctement".
Cette erreur est causée par le fait que la structure JSON ne correspond pas au format attendu. Les tableaux JSON sont utilisés pour représenter des listes ou des collections, tandis que les objets JSON sont utilisés pour représenter des paires clé-valeur. Dans cet exemple, la chaîne JSON contient un seul objet dont la propriété « data » est un tableau d'objets. Pour résoudre ce problème, vous devez désérialiser la chaîne JSON dans une structure de classe appropriée.
Comprendre la structure JSON
La structure de chaîne JSON fournie est la suivante :
<code class="language-json">{"data":[{"target_id":9503123,"target_type":"user"}]}</code>
Il contient un seul objet dont la propriété "data" est un tableau d'objets.
Code de désérialisation correct
La ligne de code à l'origine de l'erreur est :
<code class="language-csharp">List<rootobject> datalist = JsonConvert.DeserializeObject<list>(jsonstring);</code>
Cette ligne tente de désérialiser une chaîne JSON en une liste d'objets RootObject. Cependant, la chaîne JSON contient un seul objet, pas une liste d'objets. Pour corriger cette erreur, remplacez le code par :
<code class="language-csharp">RootObject datalist = JsonConvert.DeserializeObject<rootobject>(jsonstring);</code>
Ce code corrigé désérialise la chaîne JSON en un seul objet RootObject, qui correspond correctement à la structure JSON.
Conclusion
Vous pouvez résoudre l'erreur « Impossible de désérialiser l'objet JSON actuel » en vous assurant que le code correspond correctement à la structure JSON. Comprendre le format attendu d'une chaîne JSON est crucial pour une désérialisation réussie.
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!