Ne peut pas désérialiser objet JSON dans le " type de Système.Les Collections.Génériques.Liste`1[obJson]'
Je suis en train de Désérialiser (à l'aide de Newtonsoft) JSON et de convertir à la Liste en c#. C'est en me jetant à l'erreur "Impossible de désérialiser objet JSON dans le" type de Système.Les Collections.Génériques.Liste`1[obJson]'."
Voici ma chaîne JSON:
string webContent = "{\"searchResults\": [{\"gefId\":0,\"resultNumber\":1,\"distance\":4.2839,\"sourceName\":\"MQA.MQ_34172_HD\",\"name\":\"USER_DEFINED\"},{\"gefId\":0,\"resultNumber\":1,\"distance\":4.2839,\"sourceName\":\"MQA.MQ_34172_HD\",\"name\":\"USER_DEFINED\"}]}";
De Conversion, cette ligne est en train de jeter erreur:
List<obJson> result = JsonConvert.DeserializeObject<List<obJson>>(webContent);
Mes classes personnalisées:
public class SearchResults
{
public int gefId { get; set; }
public int resultNumber { get; set; }
public decimal distance { get; set; }
public string sourceName { get; set; }
public string name { get; set; }
}
public class obJson
{
public SearchResults SearchResults { get; set; }
}
Vous devez vous connecter pour publier un commentaire.
Depuis votre json est un objet dont la
searchResults
membre contient un tableau, modifier votreobJson
comme ci-dessouset désérialiser comme
SearchResults
àsearchResults
? Il fonctionne sur mon ordinateur.sResult
. Changer desearchResults
. Ou tout Simplement la copie de ma réponse ne le renommez pas (Vous pouvez aussi utiliserJsonProperty
attribut après que vous obtenez votre code de travail).Le problème est avec votre modèle ou à l'inverse, avec les données que vous envoyez. Vous recevez un tableau et en espérant désérialiser dans la plaine de l'objet. Vous pouvez changer de modèle comme
et votre résultat sera désérialisé l'amende juste.
votre json n'est pas valide.
http://jsonlint.com/