Ich Deserialisierung der JSON-Zeichenfolge zu Stammobjekt, indem Sie die folgende Klasse verwenden, die einwandfrei funktioniert.Warum funktioniert JSON.NET nicht mit Vererbung beim Deserialisieren
[Serializable]
public class MoviesListRootObject
{
public int count { get; set; }
public Pagination pagination { get; set; }
public List<Response> response { get; set; }
}
...................................
var json = wc.DownloadString(jsonRequestURL);
var rootObj = JsonConvert.DeserializeObject<MoviesListRootObject>(json);
Aber Wenn ich das Root-Objekt verallgemeinere, indem ich die Elternklasse erstelle und dann von ihr erben werde, dann bekomme ich null nach der Deserialisierung !!!!
[Serializable]
public class RootObject
{
public int count { get; set; }
public Pagination pagination { get; set; }
}
[Serializable]
public class MoviesListRootObject:RootObject
{
public List<MovieResponse> movieResponse { get; set; }
}
........................................... ...
var json = wc.DownloadString(jsonRequestURL);
var rootObj = JsonConvert.DeserializeObject<MoviesListRootObject>(json);
ist es besser, wenn Sie die Beispiel-JSON-Zeichenfolge einschließen. –
Versuchen Sie, die in dieser anderen Antwort genannten Einstellungen zu verwenden: http://stackoverflow.com/a/6495299/146656, oder wenden Sie '[JsonObject (MemberSerialization.OptIn)]' auf die Basisklassedeklaration an, wie in http: // stackoverflow vorgeschlagen .com/a/6451204/146656 Wenn beide fehlschlagen, überprüfen Sie den benutzerdefinierten Ansatz in diesem Blogpost http://dotnetbyexample.blogspot.com.au/2012/02/json-deserialization-with-jsonnet-class.html – Meligy