我正在編寫一個控制檯應用程序,用於解析來自外部源的JSON數據。這是在C#中使用.NET 4.0(完整版本,而不是客戶端配置文件)。 我試圖使用System.Web.Script.Serialization.JavaScriptSerializer類JSON數據反序列化爲一個對象,像這樣:反序列化大集合的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對象?
請注意:我的團隊負責人寧願不使用除微軟以外的任何庫。這意味着我不能使用JSON.NET(又名NEWTONSOFT),所以請不要提倡它。
我不知道這是否會有所幫助,但是我們遇到了這個問題和大量的對象。我們通過設置(在你的情況)解決它deserializer.MaxJsonLength = int.MaxValue; – TChadwick