簡體   English   中英

文字或文字中出現JSON.parse錯誤

[英]JSON.parse error when in text is present \' or \"

在PHP中,我使用mysql_real_escape_string將符號``'和"\\'\\" \\'

之后,我從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
*/

如果要在JSON字符串中包含引號,請添加一個\\

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

從此行中刪除多余的引號var a='{"a":"b\\""}';

修改后的代碼:

var a='{"a":"b\"}';
var b=JSON.parse(a);
alert(b.a);
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));

從MySQL提取數據后,使用stripslashes()去除多余的反斜杠。 然后將數據編碼為JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM