2010-10-05 2 views
0

У меня есть следующие строки JavaScript:пытается заменить «» символ Использование JavaScript для JSON парсер

YAHOO.lang.JSON.parse(txt)

где текст представляет собой строку, которая извлекается из базы данных. Это пример одного из проблемных строк я получаю обратно:

5000\25\30%

JSON парсер бросает синтаксические ошибки на/символе, насколько я могу судить. Я просматривал темы здесь, и большинство из них говорит, чтобы изменить его на «//», но я вытаскиваю сотни значений из базы данных, поэтому я не могу изменить их источник. Я пытаюсь заставить его заменить символ «/» только пустой строкой, так как на самом деле мне не нужно отображать «/», но у меня возникают трудности. Мой текущий код замены выглядит так:

if(substr.indexOf("\\") > 0){ 

    substr.replace(/\\/g , ""); 

} 

но ничего не происходит. Иногда проверка «indexOf» завершается с ошибкой, поэтому я попытался выполнить замену на каждой строке и не заменил ни одного из символов «\». Итак, вот мой вопрос: если я верну строку с одним или несколькими символами '\' и вам нужно удалить их для парсера JSON, используя javascript, как это сделать; или как я могу получить парсер JSON для приема символа '\' без изменения исходной строки.

Редактировать: Я думаю, что может быть проблемой в том, что «\ 2» и все остальные оценивают и исключают символы, которые ничего не делают. Эти символы всегда экранированы, поэтому их нельзя заменить. Возможно ли даже исправление ошибки?

+0

Это похоже на поиск решения проблемы, которой не должно быть в первую очередь. Что содержит 'txt'? Кто бросает ошибки в какой момент с каким сообщением? –

+0

txt содержит строку, которая извлекается из базы данных, которая представляет собой группу пар ключей: значение в форме «NAME»: «значение», где значение представляет собой строки. он работает для всех строк, кроме тех, которые имеют характер «\». Чтобы понять, что происходит не так, я вручную вытащил каждую строку и нажал на парсер JSON, когда я сделал это, единственные строки, которые были неудачными, - это те, у которых есть «\». – Drew

+0

Думаю, вам нужно показать какой-то код. Как вы извлекаете данные из базы данных? –

ответ

0

Я смог понять это. Для этого потребовалось изменить jsonWrite, который создавал исходный возврат из базы данных и выполнял функцию replaceAll («\ x5C», «\»), заменяя символ кодом html, чтобы он все еще отображался и может быть проанализирован ,

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