Maison > développement back-end > C++ > Pourquoi est-ce que j'obtiens une erreur de désérialisation « Incompatibilité de type » avec mes données JSON ?

Pourquoi est-ce que j'obtiens une erreur de désérialisation « Incompatibilité de type » avec mes données JSON ?

Patricia Arquette
Libérer: 2025-01-08 06:02:42
original
366 Les gens l'ont consulté

Why Am I Getting a

Erreur d'incompatibilité du type de désérialisation JSON

En programmation, rencontrer l'erreur "Impossible de désérialiser l'objet JSON actuel (par exemple : {"name":"value"})..." est un problème courant. Cette erreur se produit lorsque la structure des données JSON est incohérente avec le type attendu défini dans le code.

Dans l'extrait de code suivant :

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

Le problème vient du type désérialisé. Cette ligne tente de désérialiser la chaîne JSON jsonstring en List<RootObject>, en attendant un tableau d'objets. Cependant, la structure de données JSON est un objet qui n'a qu'une seule propriété appelée data, qui contient un tableau d'objets.

Pour résoudre ce problème, le type désérialisé doit correspondre à la structure des données JSON. Dans ce cas, la ligne de désérialisation correcte serait :

    RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);
Copier après la connexion
Les

Les objets JSON contenant la propriété datalist (qui contient un tableau d'objets) peuvent être désérialisés correctement en déclarant RootObject comme data. Cela évite les erreurs d'incompatibilité de type car désormais le type attendu du code est cohérent avec la structure réelle des données 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!

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