1

我正在尝试这样做:

<?php $php_array = array ('var1' => "l'ape"); ?>

<script type="text/javascript">
var my_javascript_object = jQuery.parseJSON('<?php echo json_encode($php_array); ?>');
</script>

我收到此错误“未捕获的语法错误:意外的标识符”。问题是 $php_array 中 var1 的值中的单引号。

这不起作用

 <?php $php_array = array ('var1' => "l\'ape"); ?>
4

2 回答 2

3

在这种情况下,您不需要使用 JSON.parse解析您的只需将其用作对象文字而不是 Javascript 字符串:

var my_javascript_object = <?php echo json_encode($php_array); ?>;
于 2012-06-22T15:14:30.597 回答
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);
于 2012-06-22T15:14:38.967 回答