Maison > développement back-end > C++ > Pourquoi la désérialisation de mon tableau JSON échoue-t-elle lorsque j'attends un seul objet ?

Pourquoi la désérialisation de mon tableau JSON échoue-t-elle lorsque j'attends un seul objet ?

Susan Sarandon
Libérer: 2025-01-27 05:06:08
original
176 Les gens l'ont consulté

Why Does My JSON Array Deserialization Fail When Expecting a Single Object?

Erreur de désérialisation du tableau JSON : raisons de dépannage

Lorsque vous essayez de désérialiser des données JSON, assurez-vous toujours que la structure JSON est cohérente avec l'objet ou le type de collection attendu. Dans ce cas, l'erreur rencontrée est :

<code>“无法将当前JSON数组(例如[1,2,3])反序列化为类型'test.Model.RetrieveMultipleResponse',因为该类型需要一个JSON对象(例如{"name":"value"})才能正确反序列化。”</code>
Copier après la connexion

Comprendre la structure JSON

Le JSON fourni représente un tableau d'objets RetrieveMultipleResponse :

<code>[
    { ... },
    { ... },
    { ... }
]</code>
Copier après la connexion

Cette structure indique que le JSON est un tableau d'objets RetrieveMultipleResponse individuels, et non un seul objet.

Faire correspondre la structure JSON au type de cible

Le type de cible de désérialisation spécifié est « RetrieveMultipleResponse », qui attend un seul objet. Cependant, la structure JSON est un tableau d'objets. Pour résoudre cette incompatibilité, nous devons désérialiser le JSON en un type de collection capable de gérer des tableaux d'objets.

Solution : Désérialiser en type de collection

Pour désérialiser correctement un tableau JSON, nous devons utiliser un type de collection comme type cible :

<code>var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
Copier après la connexion

Nous pouvons désérialiser avec succès un tableau d'objets RetrieveMultipleResponse en changeant le type de cible en un type de collection (par exemple, List).

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