我有一个var,它接受Facebook API返回的字符串并将其转换为JSON对象。在对象内部有一个粉丝页面的标题。
var myJSON = JSON.parse('<?php echo $jsonString; ?>');
受关注的FB返回的字符串部分看起来像这样:
{"data":[
{"category":"Website",
"name":"Page's Title",
"access_token":"TOKEN"}
]}
我将<?php echo $jsonString; ?>
包装在单引号中,因为如果我使用双引号,它们会与FB返回的字符串中的双引号冲突。但是请参阅Page's Title
中的单引号?如果碰巧FB返回一个字符串,该字符串包含一个破坏我的JS代码的单引号,我在控制台中得到Uncaught SyntaxError: Unexpected identifier
。
如何使我的代码足够健壮以解析字符串,同时允许其中的双引号和单引号的可能性?
答案 0 :(得分:1)
您可以使用addslashes()
,在需要引用的字符之前返回带反斜杠的字符串。这些字符是单引号('
),双引号("
),反斜杠(\
)和NUL(NULL字节)。
var myJSON = JSON.parse('<?php echo addslashes($jsonString); ?>');
答案 1 :(得分:1)
这将在需要引用的字符之前返回带反斜杠的字符串。
var myJSON = JSON.parse('<?php echo addslashes($jsonString); ?>');