我是通過使用下面的工作正常的類來將JSON字符串反序列化爲根對象。爲什麼在反序列化的時候JSON.NET不能使用繼承
[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);
但如果我是普通的根對象bt創建父類,然後從它繼承,那麼我在反序列化後得到空!
[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);
如果包含示例JSON字符串,則會更好。 –
嘗試使用在這個其他答案中提到的設置:http://stackoverflow.com/a/6495299/146656或應用'[JsonObject(MemberSerialization.OptIn)]'到基類聲明中建議在http:// stackoverflow .com/a/6451204/146656如果兩者均失敗,請查看此博文中的自定義方法http://dotnetbyexample.blogspot.com.au/2012/02/json-deserialization-with-jsonnet-class.html – Meligy