C#作为强类型语言,在序列化和反序列化(json)场景中对字符串解析常常需要定义强类型模板,造成编码上的繁琐。其实可以使用匿名类型和动态解析减少json序列化时候的数据模板定义;
string a = "1"; bool b = true; double c = 123; var d = new { a, b, c }; var o = new { a, b ,c,d}; var s = JsonConvert.SerializeObject(o); Console.WriteLine(s); dynamic o2 = JsonConvert.DeserializeObject(s); string a1 = o2.a; bool b1 = Convert.ToBoolean(o2.b); double c1 = Convert.ToDouble(o2.c); string a2 = o2.d.a; Console.WriteLine(a1); Console.WriteLine(b1); Console.WriteLine(c1); Console.WriteLine(a2);