Попробуйте это для умных одинарных кавычек, если вышеприведенное не работает:
string.Replace("\342\200\230", "'")
string.Replace("\342\200\231", "'")
Попробуйте также и для умных двойных кавычек:
string.Replace("\342\200\234", '"')
string.Replace("\342\200\235", '"')
Что ж, безопасно это или нет, но при использовании jQuery лучше использовать метод $. GetJSON () , а не $ .ajax ():
$.getJSON(url, function(data){
alert(data.exampleType);
});
eval ()
обычно считается безопасным для синтаксического анализа JSON, когда вы общаетесь только со своим собственным сервером, и особенно когда вы используете хорошую библиотеку JSON на стороне сервера, которая гарантирует, что сгенерированный JSON не будет содержать ничего неприятного.
Даже Дуглас Крокфорд, автор JSON, сказал, что вы не должны использовать eval ()
где-либо в своем коде, кроме синтаксического анализа JSON. См. Соответствующий раздел в его книге JavaScript: Хорошие части
Вы должны использовать JSON и написать JSON.parse.
«Ручной» синтаксический анализ выполняется слишком медленно, поэтому реализация JSON.parse из библиотеки проверяет материал, а затем завершает использование eval, поэтому он по-прежнему небезопасен . Но если вы используете новый браузер (IE8 или Firefox), код библиотеки фактически не выполняется. Вместо этого включается встроенная поддержка браузера , и тогда вы в безопасности.
Небезопасно? Это зависит от того, можете ли вы доверять данным.
Если вы можете быть уверены, что строка будет в формате JSON (и не будет включать, например, функции), тогда это безопасно.
Тем не менее, если вы используете jQuery, почему ты делаешь это вручную? Используйте параметр dataType , чтобы указать, что это JSON, и пусть библиотека позаботится об этом за вас.
Если вы не можете доверять источнику, значит, вы правы ... eval небезопасен. Его можно использовать для внедрения кода на ваши страницы.
Перейдите по этой ссылке для более безопасной альтернативы:
Использование eval JavaScript небезопасно. Поскольку JSON - это всего лишь подмножество JavaScript, но JavaScript eval
допускает любой допустимый JavaScript.
Вместо этого используйте настоящий анализатор JSON, например JSON-анализатор с json.org .
Альтернативой оценке кода является его анализ вручную. Это не так сложно, как кажется, но во время работы это намного тяжелее. Вы можете прочитать об этом здесь.
Важно отметить, что оценка JSON небезопасна по своей сути. Пока вы доверяете источнику, чтобы не ссориться. Это включает в себя проверку того, что вещи, переданные в кодировщик JSON, правильно экранированы (чтобы люди на два шага вверх по потоку не выполняли код на машинах ваших пользователей).
Если вы используете jQuery, начиная с версии 1.4.1 вы можете использовать jQuery.parseJSON ()
См. Этот ответ: Безопасный синтаксический анализ json с помощью jquery?