我正在尝试这个:
<?php $php_array = array ('var1' => "l'ape"); ?>
<script type="text/javascript">
var my_javascript_object = jQuery.parseJSON('<?php echo json_encode($php_array); ?>');
</script>
我收到此错误“Uncaught SyntaxError:Unexpected identifier”。 问题是$ php_array中var1值的单引号。
这不起作用
<?php $php_array = array ('var1' => "l\'ape"); ?>
答案 0 :(得分:3)
在这种情况下,您无需使用JSON.parse解析json。只需将其用作对象文字而不是Javascript字符串:
var my_javascript_object = <?php echo json_encode($php_array); ?>;
答案 1 :(得分:2)
问题是您尝试将JSON放在JavaScript字符串中。
请改为:
var my_js_obj = <?php echo json_encode($php_array); ?>;
JSON字符串是一个有效的JavaScript表达式,您可以将其直接放在JS代码中。
如果你真的想创建一个包含JSON的字符串(你没有!),你可以这样做:
var my_json_string = <?php echo json_encode(json_encode($php_array)); ?>;
var my_js_obj = $.parseJSON(my_json_string);