我在从API中下载JSON字符串的问题有问题。我想将其划分为抽象类,因此该类型将由运行时决定。
我的代码示例:
JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
JsonClasses myObj = (JsonClasses) JsonConvert.DeserializeObject(this.Response, settings);
用于解释,在此。我有json字符串。我使用这种方式(键入)基于stackoverflow中的另一个主题来处理避免化的方式,但这对我不起作用 - 也许是因为事实是,他们首先将对象序列化以串联为字符串。我有一些来自抽象类JSONCLASSES的派生类。他们有不同的" JSON结构"。是否有可能解决这一问题的难度不佳的方式?
感谢您的帮助!
您无法创建抽象类的对象:
MSDN:抽象类与接口密切相关。它们是无法实例化的类,并且经常被部分实现,或者根本无法实现。抽象类和接口之间的一个关键区别在于,类可以实现无限数量的接口数,但只能从一个抽象(或任何其他类型的)类中继承。从抽象类派生的类仍可以实现接口。在创建组件时,抽象类在创建组件时很有用,因为它们允许您在某些方法中指定功能级别,但是将其他方法的实现留在需要该类的特定实现之前。它们的版本也很好,因为如果在派生类中需要其他功能,则可以将其添加到基类而不会破坏代码。
只是从您的抽象类中继承了一些类(没有身体),然后对其进行审理。
例如:
public class YourClassName : JsonClasses
{
}
更新
例如,我已经创建了一个示例通用方法,可以帮助:
public T DeserializeFromJsonClasses<T>() where T : JsonClasses
{
T myObj = default(T);
JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All};
myObj = JsonConvert.DeserializeObject<T>(this.Response, settings);
return myObj;
}