我想将一个对象转换为json,然后将json解析回原始对象。困难在于有一个GENERIC对象列表作为成员。我可以将对象转换为json,但不知道如何使用泛型类型将json解析回对象。有谁知道怎么做?
我使用的json库是Newtonsoft.Json。
感谢任何帮助。
public class TestGeneric2
{
public void test()
{
MyClass myObj = new MyClass();
List<Element<IMyInterface>> list = new List<Element<IMyInterface>>();
list.Add(new Element<IMyInterface>(new C1("bbb")));
list.Add(new Element<IMyInterface>(new C2(5.43)));
myObj.list = list;
// convert to json
var json = JsonConvert.SerializeObject(myObj);
Console.WriteLine(json);
// parse json
parseJson(json);
}
public void parseJson(string json)
{
Console.WriteLine("parsing...");
// How to parse the json back to MyClass?
}
}
interface IMyInterface{}
class C1 : IMyInterface
{
public string StrValue;
public C1(string s)
{
StrValue = s;
}
}
class C2 : IMyInterface
{
public double DoubleValue; // different member type than C1
public C2(double v)
{
DoubleValue = v;
}
}
class Element<T> where T : IMyInterface
{
public T Value;
public Element(T value)
{
Value = value;
}
}
class MyClass
{
public List<Element<IMyInterface>> list;
}
语句“Console.WriteLine(json);”输出 { “清单”:[{ “值”:{ “strValue的”: “BBB”}},{ “值”:{ “的doubleValue”:5.43}}]} 我不知道如何解析它,因为列表中的两个元素有不同的类型。