2016-01-15 84 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 b=JSON.parse(a); 
alert(b.a); 
+0

我需要額外的報價。我不需要\。它由Php添加。 – Iahim

+0

@Iahim:這不會返回你的反斜槓,請檢查console.log(b);結果是對象{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。一個); /* 例外:未終止的字符串文字 @便籤本/ 1:1 */ – Iahim

+0

此工作 var a ='{「a」:「b \'」}'; – Iahim

+0

@Iahim對不起,但''{「a」:「b \'」}「'是這種情況可以寫入的唯一方法。你不能使用''{「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應該看起來像構造對象和字符串化它像這樣:

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

對於數據庫中的每個單元格(<?echo stripslashes($ row ['x']);?>),每個頁面使用stripslashes 100次或可能爲 $ res = myslq_query ... $ res = stripslashes ($水庫); ? 我覺得很容易不添加斜槓到數據庫通過刪除產生它的字符,然後插入或更新數據(在代碼中的最多10個地方):a1,00,carredge,end line,和其他(最多5-10個字符) – Iahim