2017-09-10 4 views
0

J'ai un JavaScriptSerializer() qui désérialise un JSON d'un service Web et échoue en raison d'une mauvaise gestion d'une liste.Echec de la désallocation de la liste avec JavaScriptSerializer()

C'est ma classe:

public class LoginReply 
{ 
    public Userdata userdata { get; set; } 
    public List<string> errors { get; set; } 
} 

public class Userdata 
{ 
    public string username { get; set; } 
    public string section{ get; set; } 
    public string avatar { get; set; } 
    public string description { get; set; } 
    public string authkey { get; set; } 
} 

Et je deserilize avec:

LoginReply reply = new JavaScriptSerializer().Deserialize<LoginReply>(loginRespose); 

J'ai aussi essayé avec:

LoginReply reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose); 

sans succès

(Impossible de convertir implicitement le type 'System.Collections.Generic.List' à 'Redacted.Redacted.LoginReply')

+0

Poster Received JSON – Gusman

Répondre

1

Le problème repose ici:

LoginReply reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose); 

youa essayer de désérialiser le loginRespose à une liste de LoginReply mais de l'autre côté vous le déclarez pas comme une liste.

Pour la première tentative, nous devons voir le json assigné à la variable loginRespose car il peut être nul ou pas valide json ou n'a pas les propriétés comme LoginReply classe.

Si le JSON arrive comme une liste de LoginReplys vous pourriez avoir à TRO désérialisation à une liste de cette classe comme ci-dessous:

List<LoginReply> reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose); 
+0

Merci, je suppose que plus la programmation à 3 heures pour moi –

+0

heureux qu'il a aidé –