2012-06-18 3 views
0

У меня есть проект, где мне нужно иметь два отдельных списка JSON, что означает, что я не могу использовать JsonResult в контроллере, поэтому мне нужно разобрать клиентскую сторону. Я использую следующее разобрать мой список для Json, а затем отправить строку на мой взгляд, модели из Newtonsoft.Json пакета:Пытается разобрать данные модели у JSON в MVC3

Model.JsonAllActiveItems = JsonConvert.SerializeObject(Model.AllActiveItems,Formatting.None); 

Тогда в моем файле сценария говорят:

function setActiveList(list) { 
    alert(list)//for test 
    activeList = JSON.parse(list); 
}; 

я получаю ошибку «Uncaught SyntaxError: Неожиданный маркер о» после команды синтаксического анализа

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}] 

Любые идеи? Приветствия

UPDATE: Что странно, что в отладчик JavaScript Chrome, «список» правильно заполнен правильными данными даже перед командой синтаксического анализа. Однако, когда я пытаюсь проверить это без использования JSON.parse() следующим образом я получаю пустую строку как список является пустым:

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

Вы должны предоставить более подробную информацию. показать нам свой код –

+1

Опубликовать JSON, который вы получаете, так как это вызывает ошибку. – Styxxy

+0

Похоже, у вас проблема с кодировкой JSON - у меня было это раньше, но я не могу на всю жизнь помнить, что это было! :( –

ответ

0

Так что вопрос в том, что если вы используете Newtonsoft.Json DLL с MVC3, вам не нужно разбирать JSON в JavaScript. Эта магия происходит за кулисами. Причина, почему я не был в состоянии получить что-нибудь в моем тесте, что я нуб JQuery и сделал

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

вместо

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

Теперь она работает.

Смежные вопросы