工作一段时间后,JObject.Parse会给出System.ArgumentNullException

时间:2015-08-28 05:54:02

标签: json.net

我们在JSON.Net上遇到了一个奇怪的问题。一切正在使用我们的IIS应用程序。在某一天,JObject.Parse开始出错。它一直工作到那个时候。之后,解析失败了。

例外是:

javax.ejb.SessionContext

调用它的代码

System.ArgumentNullException: Value cannot be null. Parameter name: value
  at Newtonsoft.Json.Linq.JToken.op_Explicit(JToken value)
  at ASP.areas_admin_views_shared_editortemplates_reflectionfield_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
  at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
  ....

我调试了这个并且跟随字符串工作:

  <% JObject o = JObject.Parse((string)ViewData["ReflectionField_Choices"].ToString()); %>

以下字符串失败:

  { 'choices' : [{'Form_id' : 11065,'Fields' : [],'Name' : 'B'}] }

当一切正常时,失败的字符串当然有效。有没有人知道什么可能导致在运行时更改此库?

1 个答案:

答案 0 :(得分:0)

我认为,您的问题可能是ViewData["ReflectionField_Choices"]在此过程中的某处被删除。可能是因为它被保存为ViewData,并且在一段时间后(cookie /会话到期)/刷新数据丢失。