2017-09-10 2 views
0

Ich habe eine JavaScriptSerializer(), die ein JSON aus einem Webdienst deserialisiert und aufgrund einer falschen Behandlung einer Liste zur Laufzeit fehlschlägt.List-Array-Deseralisierung mit JavaScriptSerializer() schlägt fehl

Das ist meine Klasse:

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; } 
} 

Und ich deserilize mit:

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

ich auch versucht, mit:

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

ohne Erfolg

(Kann nicht implizit Typ umwandeln 'System.Collections.Generic.List' zu 'Redacted.Redacted.LoginReply')

+0

Beitrag die empfangenen JSON – Gusman

Antwort

1

Das Problem beruht hier:

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

Youa erneut zu versuchen, Deserialize das LoginRespose zu einer Liste von LoginReply, aber auf der anderen Seite deklarieren Sie es nicht als eine Liste.

Für den ersten Versuch müssen wir sehen, dass der JSON der Variable loginResponse zugewiesen wurde, weil er null oder nicht gültig sein könnte oder keine Eigenschaften wie LoginReply hat.

Wenn die json ist wie eine Liste von LoginReplys kommen könnten Sie es auf eine Liste dieser Klasse tro müssen Deserialisieren wie unten:

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

Danke, ich denke nicht mehr Programmierung bei 03.00 für mich –

+0

froh, dass es geholfen hat –