如何使用newtonsoft.json进行测试下载的JSON字符串到抽象类C#



我在从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;
}

相关内容

  • 没有找到相关文章

最新更新