如何将一个包含泛型列表的json解析为对象?
如何将一个包含泛型列表的json解析为对象?
我想将一个对象转换为json,然后将json解析回原始对象。困难在于成员中有一个泛型对象的列表。我可以将对象转换为json,但不知道如何将json解析回具有泛型类型的对象。有人知道如何做吗?
我使用的json库是Newtonsoft.Json。
感谢任何帮助。
public class TestGeneric2 { public void test() { MyClass myObj = new MyClass(); List> list = new List >(); list.Add(new Element (new C1("bbb"))); list.Add(new Element (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..."); // 如何将json解析回MyClass? } } interface IMyInterface{} class C1 : IMyInterface { public string StrValue; public C1(string s) { StrValue = s; } } class C2 : IMyInterface { public double DoubleValue; // 与C1不同的成员类型 public C2(double v) { DoubleValue = v; } } class Element where T : IMyInterface { public T Value; public Element(T value) { Value = value; } } class MyClass { public List > list; }
语句"Console.WriteLine(json);"输出
{"list":[{"Value":{"StrValue":"bbb"}},{"Value":{"DoubleValue":5.43}}]}
我不知道如何解析它,因为列表中的两个元素具有不同的类型。