我搜索并阅读了大部分相关主题,但它们不是我想要的。
我有一个带有json_encode
PHP 函数的 JSON 编码字符串:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
我正在使用 jQuery 将值也放入适当的字段中,在测试的情况下,我执行了以下操作:
<script>
var obj = jQuery.parseJSON('<?=$data?>');
console.log(obj);
</script>
假设 $data 是这样的:
$data =
<<<END
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
END;
在这种情况下,Google chrome 控制台会产生什么:
Uncaught SyntaxError: Unexpected identifier
但是,当我更改 JSON 编码字符串时 - 将反斜杠添加到单引号:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D\'Onofrio"],"year":1987}
控制台输出正常:
Object {casts: Array[3], year: 1987}
casts: Array[3]
year: 1987
问题:控制台中的这个错误是预期的吗?我认为逃避或替换'
会\'
很脏!
更新
实际上$data值来自 ajson_encode($var)
而 $var 是一个数组!
$data = json_encode($var);