我正在使用JSON API客户端。目标是使用方法ToJSON(..)
和FromJSON(..)
创建一个基类型,后续类可以从中继承。在C#/ .NET4中反序列化基本类型中的JSON
ToJSON(..)
是比较直接的,遵循Scott Guthrie的博客文章(http://bit.ly/Ppgd3)。我正在努力与FromJSON(..)
。这是基本的代码:
public class BaseType
{
public virtual void FromJson(System.Type type, string input)
{
// What? How?
}
public virtual string ToJson()
{
JavaScriptSerializer serial = new JavaScriptSerializer();
return serial.Serialize(this);
}
public virtual string ToJson(string verb)
{
JavaScriptSerializer serial = new JavaScriptSerializer();
string value = serial.Serialize(this);
return string.Concat("{", "\"", verb.Trim(), "\":", value, "}");
}
}
我们这样做是Deserialize(..)
的方式和工作类外。我的问题是如何让Deserialize(..)
命令在上述类的FromJSON(..)
下以可继承的方式工作。
public class InheritedObject : BaseType { }
System.Web.Script.Serialization.JavaScriptSerializer serial = new System.Web.Script.Serialization.JavaScriptSerializer();
InheritedObject foo = serial.Deserialize<InheritedOjbect>(jsonString);
的语言是C#,框架是.NET 4.0和IDE是Visual Studio的2012年
'from *'方法通常是'static',因为它们创建来自输入的* new *对象 –