Я столкнулся с проблемой при отображении шаблона jQuery, где JSON записывается непосредственно в HTML, а затем передается в шаблоны jquery при загрузке для визуализации части экрана.
У меня есть простойФункция, которая загружает шаблон:
function templateLoader(templateID, containerID, serializedData) {
var json = $.parseJSON(serializedData);
$("#" + templateID).tmpl(json).appendTo("#" + containerID);
};
Это не работает, говоря, что JSON является недействительным.Вот как выглядит вызывающая сторона:
<script type='text/javascript'>
jQuery(function () {
templateLoader('questionTemplate',
'questionContainer',
'[{"ID":1,"Text":"something with an escaped \"double quote\" and a single quote does the unicode version\u0027s end of string"}]');
});
</script>
JSON создается путем вызова JavaScriptSerializer.serialize () и выводится в представлении ASP.NET MVC с <% = JavaScriptSerializer.serialize (model.questions)%>
Сам JSON проходит различные тесты проверки JSON.
Я понимаю, что сам javascript избегает двойных кавычек, оставляя двойные кавычки пустыми для вызова jQuery's parseJSON ().
Мой вопрос: где это лучше всего исправить?Должен ли я опубликовать процесс сериализованного вызова JavaScriptSerializer, чтобы добавить дополнительные экранирование или перейти от экранирования к выполнению «замен»? Похоже, это будет более распространенной проблемой.