我搜索并阅读了大多数相关主题,但这些并不是我想要的。
我有一个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的值来自,json_encode($var)
而$ var是一个数组!
$data = json_encode($var);
但是,当我更改JSON编码的字符串时-将反斜杠添加到单引号中
这样可以在PHP字符串文字中将其转义。然后将其作为简单的插入到PHP字符串中'
。
如果你想将其插入JavaScript的前逃脱它,那么你需要斜线添加到字符串你出来的json_encode
(或者说,因为你不使用你建立的手说(你应该!)JSON字符串)。
那是您需要做的更多工作。真正的解决方案是记住JSON是JavaScript文字语法的子集:
var obj = <?=$data?>;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句