当前位置: 首页 > 面试题库 >

将JSON反序列化为匿名对象

薛阳荣
2023-03-14
问题内容

在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
,速度很快!



 类似资料:
  • 问题内容: 如何将json格式的数据字符串转换为 匿名对象 ? 问题答案: C#4.0添加了可以使用的动态对象。看看这个。

  • 问题内容: 我在使用AJAX访问的Java服务器应用程序中有一个字符串。它看起来像以下内容: 当从服务器提取字符串时,是否有一种简单的方法可以将其转换为活动的JavaScript对象(或数组)?还是我必须手动拆分字符串并手动构建对象? 问题答案: 现代浏览器支持。 在不浏览器,您可以包括在库中。

  • 问题内容: 我需要将Objective- C对象序列化和反序列化为JSON以存储在CouchDB中。人们是否有通用解决方案最佳实践的示例代码?我看了几个JSON框架,它们在NSDictionary / NSArray级别停止了。即,许多框架会将NSDictionary / NSArray序列化和反序列化为JSON。但是我仍然要做将NSDictionary转换为Objective-C对象的工作。 为

  • 问题内容: 我有由第三方编码为固定长度数组的json’ed 元组数组: 我想使用json魔术来获取的实例列表 请帮助我放置适当的注释,以使ObjectMapper发挥作用。 我无法控制传入的格式,而我所有的google’n都以答案来回答如何将适当的json对象(而非数组)数组映射到对象列表 问题答案: 添加以下注释: 并且它应该根据需要序列化条目。 另外:然后使用它来强制执行特定顺序是最安全的,因

  • 问题内容: 我需要转换从REST API获得的JSON数据,并将其转换为CSV以便进行分析。问题在于JSON数据不一定遵循相同的内容,因此我无法定义映射类型。这已经成为一项挑战,占用了我太多时间。我已经创建了一些代码,但是由于它在此行上引发了异常,因此它当然不起作用 错误是: 附加信息:无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型’System.Collecti

  • 问题内容: 我的JSON有点弱,所以我需要一些帮助。 我正在尝试反序列化用户的JSON: 放入我用属性装饰的对象中: 我得到以下异常: Newtonsoft.Json.JsonSerializationException:在JSON中找不到必需的属性’user_id’。 这是因为JSON对象是一个数组吗?如果是这样,如何将其反序列化为一个User对象? 提前致谢! 问题答案: 正如Alexandr