Javascript 试图从MVC3中的JSON解析模型数据

Javascript 试图从MVC3中的JSON解析模型数据,javascript,json,asp.net-mvc-3,Javascript,Json,Asp.net Mvc 3,我有一个项目,我需要有两个单独的JSON列表,这意味着我不能在我的控制器中使用JsonResult,所以我需要解析客户端。我使用以下方法将列表解析为Json,然后从包中发送视图模型中的字符串: 然后在我的脚本文件中说: function setActiveList(list) { alert(list)//for test activeList = JSON.parse(list); }; 在parse命令之后,我不断收到错误uncaughtsyntaxerror:Unex

我有一个项目,我需要有两个单独的JSON列表,这意味着我不能在我的控制器中使用JsonResult,所以我需要解析客户端。我使用以下方法将列表解析为Json,然后从包中发送视图模型中的字符串:

然后在我的脚本文件中说:

function setActiveList(list) {
    alert(list)//for test
    activeList = JSON.parse(list);  
};
在parse命令之后,我不断收到错误uncaughtsyntaxerror:Unexpected token o

JSON字符串如有帮助,如下所示:

[{"ProductCompositions":[],"ImageName":"Item1","Version":0,"StatusInt":0,"Status":0,"Id":1},{"ProductCompositions":[],"ImageName":"Item2","Version":0,"StatusInt":1,"Status":0,"Id":2},{"ProductCompositions":[],"ImageName":"Item3","Version":0,"StatusInt":1,"Status":0,"Id":4},{"ProductCompositions":[],"ImageName":"Item2","Version":0,"StatusInt":0,"Status":0,"Id":5},{"ProductCompositions":[],"ImageName":"Item4","Version":0,"StatusInt":0,"Status":0,"Id":6},{"ProductCompositions":[],"ImageName":"Item4","Version":0,"StatusInt":0,"Status":0,"Id":7}]
有什么想法吗? 干杯

更新:wierd的特点是,在Chrome javascript调试器中,即使在parse命令之前,列表也正确地填充了正确的数据。但是,当我尝试在不使用JSON.parse的情况下进行测试时,我得到了一个空字符串,如list is null:

 var myString = "";
for (var i = 0; i < list.length; i++ ) {
    myString += "<li>" + list[i].ImageName + "</li>";
}
document.getElementById("selected-items-comp").innerHtml = myString;

所以问题是,如果将Newtonsoft.Json dll与MVC3一起使用,则不需要在JavaScript中解析Json。这种魔术发生在幕后。我在测试中什么都得不到的原因是我是一个jquerynoob,我做到了

document.getElementById("selected-items-comp").innerHtml = myString;
而不是

$('#selected-items-comp').html(myString);

现在它起作用了

你必须提供更多的细节。给我们看看你的代码贴你得到的JSON,因为这就是导致错误的原因。听起来你有一个JSON编码问题-我之前有过这个问题,但我一辈子都记不起它是什么了!:@Styxxy我添加了JSON字符串,但是考虑到它是由JsonConvert解析的,我找不到任何问题。我从这里得到了dll:JSON是完全有效的,因此错误发生在其他地方。
$('#selected-items-comp').html(myString);