JSON 包含单引号导致语法错误
JSON containing single quote causes syntaxerror
所以我有数据需要通过php获取。然后应将此数据保存到 .php 文件中的 javascript 变量,以响应值:
$json = json_encode($requirements);
echo "<script>
var myvar = '<?php echo $json; ?>';
</script>";
数据包含单引号,在 Chrome:
中出现语法错误
Uncaught SyntaxError: Unexpected identifier
页面源看起来像错误:
var myvar = '<?php echo {"data":{"data":{"1":{"description":"Don' t}}}}; ?>';
直到“"Don'" 的整个字符串为红色。
避免 json_encode 失败的正确方法是什么(除了将数据直接调用到 js)?
然后您需要转义 '
个字符,例如使用反斜杠 \
:
{"data":{"data":{"1":{"description":"Don\'t}}}}
或者在您使用 php 时,您可以使用 addslashes
函数
你需要转义双引号,试试:
var myvar = "<?php echo '{\"data\":{\"data\":{\"1\":{\"description\":\"Don\'t}}}}'; ?>";
alert(myvar)
我在单引号和双引号方面也遇到过同样的问题。
您可以通过更改单引号和双引号轻松解决它。检查下面的例子。
$array = array(
"data" => array("data" => array ("desc" => "don't"))
);
$json = json_encode($array);
echo "<script>
var myvar = ".$json.";
console.log(myvar);
</script>";
所以我有数据需要通过php获取。然后应将此数据保存到 .php 文件中的 javascript 变量,以响应值:
$json = json_encode($requirements);
echo "<script>
var myvar = '<?php echo $json; ?>';
</script>";
数据包含单引号,在 Chrome:
中出现语法错误Uncaught SyntaxError: Unexpected identifier
页面源看起来像错误:
var myvar = '<?php echo {"data":{"data":{"1":{"description":"Don' t}}}}; ?>';
直到“"Don'" 的整个字符串为红色。
避免 json_encode 失败的正确方法是什么(除了将数据直接调用到 js)?
然后您需要转义 '
个字符,例如使用反斜杠 \
:
{"data":{"data":{"1":{"description":"Don\'t}}}}
或者在您使用 php 时,您可以使用 addslashes
函数
你需要转义双引号,试试:
var myvar = "<?php echo '{\"data\":{\"data\":{\"1\":{\"description\":\"Don\'t}}}}'; ?>";
alert(myvar)
我在单引号和双引号方面也遇到过同样的问题。 您可以通过更改单引号和双引号轻松解决它。检查下面的例子。
$array = array(
"data" => array("data" => array ("desc" => "don't"))
);
$json = json_encode($array);
echo "<script>
var myvar = ".$json.";
console.log(myvar);
</script>";