Maison > développement back-end > C++ > Pourquoi la désérialisation JSON échoue-t-elle lors de la tentative de conversion d'un objet en liste ?

Pourquoi la désérialisation JSON échoue-t-elle lors de la tentative de conversion d'un objet en liste ?

Susan Sarandon
Libérer: 2025-01-08 06:00:40
original
813 Les gens l'ont consulté

Why Does JSON Deserialization Fail When Trying to Convert an Object to a List?

Problème de désérialisation JSON : impossible de convertir un objet en liste

Lorsqu'ils tentent de désérialiser un objet JSON dans une liste d'objets personnalisés, les développeurs peuvent rencontrer l'erreur : "Impossible de désérialiser l'objet JSON actuel (par exemple : {"name":"value"}) dans Type 'System.Collections .Liste.générique`1[...]'". Ce problème se produit lorsque la structure JSON ne correspond pas au type de désérialisation cible.

Considérez l'extrait de code suivant :

<code class="language-csharp">string jsonstring = "{\"data\":[{\"target_id\":9503123,\"target_type\":\"user\"}]}";
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);</code>
Copier après la connexion

Dans ce scénario, le type de désérialisation cible est List, qui attend un tableau JSON d'objets RootObject. Cependant, la chaîne JSON représente un seul objet RootObject, contenu dans un tableau nommé « data ».

Solution :

Pour résoudre ce problème, le type de désérialisation cible doit être ajusté pour s'aligner sur la structure JSON.

Désérialisation correcte :

<code class="language-csharp">RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>
Copier après la connexion

En changeant le type de désérialisation en RootObject, le code est désormais aligné sur la structure JSON et le processus de désérialisation se termine avec succès sans l'erreur ci-dessus. Si vous avez besoin d'accéder à target_id et target_type, vous devez poursuivre le traitement de l'objet data, par exemple : data.data[0].target_id.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal