在C#中,我已经通过使用如下代码成功将匿名对象序列化为JSON …
var obj = new { Amount = 108, Message = "Hello" }; JavaScriptSerializer serializer = new JavaScriptSerializer(); String output = serializer.Serialize(obj);
但是,我以后想要做的是将JSON字符串反序列化为一个匿名对象。像这样
var obj2 = serializer.Deserialize(output, object);
但是serializer.Deserialize()方法需要第二个参数,该参数是将反序列化到的对象的类型。
我试过了
var obj2 = serializer.Deserialize(output, obj.GetType());
但这会产生错误:
没有为’<> f__AnonymousType0`2 [[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,Version = 4.0.0.0,Culture =中立,PublicKeyToken = b77a5c561934e089]]。
我不确定这个错误是什么意思。
JSON.Net 是一个功能强大的库,可以在.Net中使用JSON
您可以使用一种方法DeserializeAnonymousType。
更新 :Json.Net现在包含在ASP.Net中,但是我最近最喜欢的是 JsonFX 。它也有强大的linq支持,请查看。
更新2 :我已经从JsonFX转移了,当前使用 ServiceStack.Text ,速度很快!