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
Susan Sarandonoriginal
2025-01-27 05:06:08190parcourir

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>

Comprendre la structure JSON

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

<code>[
    { ... },
    { ... },
    { ... }
]</code>

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>

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:
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