.net中使用JavaScriptSerializer可以把.net对象序列化为Json字符串。
如果想把Json字符串反序列化为.Net对象可以使用DataContractJsonSerializer,但是使用DataContractJsonSerializer必须对应Json的结构定义好强类型类的类,这是非常困难和麻烦的事情。为什么必须定义强类型的类呢?因为.Net是强类型???No!.Net 4.0之后加入了动态特性:DynamicObject,因为是动态的语法,就不需要再费事去声明强类型类了。去网上搜一下“Dynamic .Net Json”,就找到了一个开源项目Json.NET ,自从Json.NET 4.0之后就支持DynamicObject了。
用法:
dynamic newValue = JsonConvert.DeserializeObject<DynamicDictionary>(json);
string role = newValue.Roles[0];
爽呀!而且Json.NET 还支持Silverlight和Windows Phone!