Json.NET匿名类型序列化
??
如何将一个字符串转换为JSON对象呢?如果先创建一个类的话,那就太累了。 var o = new var json = JsonConvert.SerializeObject(o); 现在json是一个字符串。 第一种做法(匿名类): var anonymous = new { a = 0,b = String.Empty,c = new int[0],d = new Dictionary<string,int>() }; Console.WriteLine(o2.b); 第二种做法(匿名类): var o3 = JsonConvert.DeserializeAnonymousType(json,new { c = new int[0],int>() }); Console.WriteLine(o3.d["y"]); DeserializeAnonymousType 只是借助这个匿名对象参数(anonymous) 反射类型而已,也就是说它和反序列化结果并非同一个对象。正如 o3 那样,我们也可以只提取局部信息。 第三种做法(索引器): 实际上,我们也可以直接反序列化为 JObject,然后通过索引器直接访问。JObject、JProperty 等都继承自 JToken,它重载了基元类型转换操作符,我们可以直接得到实际结果。 Console.WriteLine((int)o2["a"]); Console.WriteLine((string)o2["b"]); Console.WriteLine(o2["c"].Values().Count()); Console.WriteLine((int)o2["d"]["y"]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |