我正在编写一个控制台应用程序来解析来自外部源的 JSON 数据。这是在 C# 中使用 .NET 4.0(完整版,而不是客户端配置文件)。我正在尝试使用 System.Web.Script.Serialization.JavaScriptSerializer 类将 JSON 数据反序列化为对象,如下所示:
var targetObject = deserializer.Deserialize<TargetObjectType>(json);
通常这可以正常工作,但是当数据包含非常大的集合时,我会收到此错误:System.InvalidOperationException(“由于对象的当前状态,操作无效。”)我做了一些研究,发现:http: //support.microsoft.com/kb/2661403。基本上,微软限制项目数量作为安全预防措施。
覆盖它的方法是向 Web.config 添加一条记录,如支持文章中所述,但在我的情况下它不起作用。我做了一些研究,发现其他人在这里遇到了这个问题:http: //msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx。
所以我的问题是:有没有办法使用 JavaScriptSerializer 在控制台应用程序中反序列化具有大量集合的 JSON 对象?
请注意:我的团队负责人不希望使用 Microsoft 以外的任何库。这意味着我不能使用 JSON.NET(又名 NEWTONSOFT),所以请不要推荐它。