2016-01-15 2 views
0

В PHP я использую mysql_real_escape_string, который преобразует символ ``»и " к \' и \"JSON.parse ошибка, когда в тексте присутствует »или »

После, я извлечения данных из MySQL и использовать его в JavaScript ., как JSON

Например, b' преобразуется to b\', и в JavaScript у меня есть эти ошибки:

var a='{"a":"b\'"}'; 
var b=JSON.parse(a); 
alert(b.a); 

var a='{"a":"b\""}'; 
var b=JSON.parse(a); 
alert(b.a); 

/* 
Exception: JSON.parse: expected ',' or '}' after property value in object at line 1 column 9 of the JSON data 
*/ 
+0

удалить дополнительную цитату – devpro

ответ

0

удалить лишние цитаты из этой линии var a='{"a":"b\""}';

Модифицированный код:

var a='{"a":"b\"}'; 
var b=JSON.parse(a); 
alert(b.a); 
+0

Мне нужна дополнительная цитата. Мне не нужно. Он добавлен Php. – Iahim

+0

@Iahim: это не вернет u обратную косую черту, зайдите в console.log (b); result is Object {a = "b"} – devpro

+0

Это вернет onl b, но мне нужно b 'или b " – Iahim

1

Если вы хотите включить цитату в JSON строки, добавить дополнение \.

Example

var a = '{"a":"b\'"}'; 
 
var b = JSON.parse(a); 
 
alert(b.a); 
 

 
var a = '{"a":"b\\""}'; 
 
var b = JSON.parse(a); 
 
alert(b.a);

+0

Но это не работает var a = '{"a": "b \\'"} '; var b = JSON.parse (a); предупреждение (b.а); /* Исключение: незавершенная строка @ Scratchpad/1: 1 */ – Iahim

+0

Работа эта вар а = { "а": "б \"} "; – Iahim

+0

@Iahim Извините, но '' {"a": "b \ '"}' '- единственный способ, которым этот случай можно записать. Вы _cannot_ use ''{" a ":" b \' "} '' –

0
var a='{"a":"b\'"}'; //or you can use "{\"a\":\"b'\"}"; 
var b=JSON.parse(a); 
alert(b.a); 

Это работает потому, что значение, сохраненное в переменной a является {"a":"b'"}

var a='{"a":"b\\""}'; //or you can use "{\"a\":\"b\\\"\"}"; 
var b=JSON.parse(a); 
alert(b.a); 

В этом случае значение, сохраненное в переменной a является {"a":"b\""}

Вы можете попытаться построить строку, что JSON должен выглядеть путем построения объекта и stringify его следующим образом:

var a = { "a" : "b'" }; 
console.log(JSON.stringify(a)); 
+0

Я удаляю или заменяю в php-символах (5-10 символов), которые пользователь вводит и создает мне проблемы, такие как # 10 # 13 (например, в Delphi), eof, \ ", и другие, которые вызывают mysql, и после выбора, удаления, вставки или обновления таблицы mysql , Могу ли я использовать его в этом режиме? Или это не хорошо? – Iahim

0

После извлечения данных из MySQL, используйте stripslashes() раздеться дополнительные обратные слэши. А затем кодируйте данные как JSON.

+0

Используйте stripslashes 100 раз на одну страницу для каждой ячейки из DB ( Iahim

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