Deserializo la cadena JSON al objeto raíz utilizando la siguiente clase que funciona bien.¿Por qué JSON.NET no funciona con la herencia mientras se deserializa?
[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);
Pero si estoy generalizando el objeto raíz bt creando la clase padre y luego heredando de ella, ¡entonces obtengo nulo después de la deserialización!
[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);
es mejor si incluye la cadena JSON de muestra. –
Intente utilizar la configuración mencionada en esta otra respuesta: http://stackoverflow.com/a/6495299/146656 o aplique '[JsonObject (MemberSerialization.OptIn)]' a la declaración de la clase base como se sugiere en http: // stackoverflow .com/a/6451204/146656 Si ambos fallan, consulte el enfoque personalizado en esta publicación del blog http://dotnetbyexample.blogspot.com.au/2012/02/json-deserialization-with-jsonnet-class.html – Meligy