【发布时间】:2011-04-06 20:35:53
【问题描述】:
我有一个 JSON.NET JObject,其数据结构如下:
{
"foo" : {
"bar": "baz"
}
}
我正在尝试将其转换为 ASP.NET MVC JsonResult,如下所示:
JObject someData = ...;
JsonResult jsonResult = Json(someData, "application/json", JsonRequestBehavior.AllowGet);
当我这样做时,我得到以下异常:
InvalidOperationException 是 未经用户代码处理。无法访问 孩子的价值观 Newtonsoft.Json.Linq.JValue.
我有一个解决方法,我可以遍历 JObject 的所有属性,并将它们解析为一个通用对象,如下所示:
JsonResult jsonResult = Json(new { key1 = value1, key2 = value2, ... });
但是,这似乎容易出错,并且是解决此问题的一种不必要的非通用方法。有什么方法可以更有效地做到这一点,希望使用 JSON.NET 或 ASP.NET MVC 中的一些内置方法?
【问题讨论】:
-
为什么不简单地使用 JSON.net 序列化您的对象,然后将其写为 ContentResult?
标签: asp.net-mvc json json.net