在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
*/
答案 0 :(得分:1)
如果您希望在JSON字符串中包含引号,请添加\
。
实施例
var a = '{"a":"b\'"}';
var b = JSON.parse(a);
alert(b.a);
var a = '{"a":"b\\""}';
var b = JSON.parse(a);
alert(b.a);
答案 1 :(得分:0)
从此行var a='{"a":"b\""}';
修改后的代码:
var a='{"a":"b\"}';
var b=JSON.parse(a);
alert(b.a);
答案 2 :(得分: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));
答案 3 :(得分:0)
从MySQL中提取数据后,使用stripslashes()去除额外的反斜杠。然后将数据编码为JSON。