为什么在JavaScript中解析JSON时出错
在ViewBag的帮助下,我将JSON传递到razor视图页面 以下是操作函数中的代码:为什么在JavaScript中解析JSON时出错,javascript,asp.net-mvc,json,asp.net-mvc-4,razor,Javascript,Asp.net Mvc,Json,Asp.net Mvc 4,Razor,在ViewBag的帮助下,我将JSON传递到razor视图页面 以下是操作函数中的代码: public ActionResult GmailOAuthCallback(string code) { object contacts = GmailServiceWorkflow.GetContacts(code); string json = new JavaScriptSerializer().Serialize(contacts);
public ActionResult GmailOAuthCallback(string code)
{
object contacts = GmailServiceWorkflow.GetContacts(code);
string json = new JavaScriptSerializer().Serialize(contacts);
ViewBag.name = json;
return View("SomeWindow");
}
在razor视图页面,我想将JSON解析为对象
以下是查看razor页面中的代码:
function myFunction() {
var arrObject = JSON.parse("@ViewBag.name");
alert(arrObject[0].firstName);
}
但我得到了这个错误:
SyntaxError:JSON.parse:JSON数据第1行第3列的预期属性名或“}”
知道我为什么会出现此错误以及如何修复它吗?与使用
JavaScriptSerializer
相比,您可以通过将集合传递给视图来实现这一点
public ActionResult GmailOAuthCallback(string code)
{
object contacts = GmailServiceWorkflow.GetContacts(code);
ViewBag.name = contacts ;
return View("SomeWindow");
}
然后在脚本中
function myFunction() {
var arrObject = JSON.parse('@Html.Raw(Json.Encode(ViewBag.name))');
alert(arrObject[0].firstName);
}
该错误表示JSON数据无效。你的代码与此无关。Stephen谢谢你的回答,但我在Json下得到了红线(错误)。错误表明了什么?您的
web.config中可能缺少
file@Michael这只意味着您需要包含相关的名称空间,或者添加一个using语句和/或将System.Web.Helpers添加到Web.config(如Stephen所述)。是的,我知道我已经有了@using System.Web.Helpers,但是我得到了错误奇怪,对我来说很有用。脚本不在外部文件中,是吗?