一尘不染

将JSON反序列化为匿名对象

json

在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]]。

我不确定这个错误是什么意思。


阅读 313

收藏
2020-07-27

共1个答案

一尘不染

JSON.Net
是一个功能强大的库,可以在.Net中使用JSON

您可以使用一种方法DeserializeAnonymousType

更新 :Json.Net现在包含在ASP.Net中,但是我最近最喜欢的是
JsonFX
。它也有强大的linq支持,请查看。

更新2 :我已经从JsonFX转移了,当前使用
ServiceStack.Text

,速度很快!

2020-07-27