7

我正在尝试使用 JSON 编码器将 PHP 多维数组转换为 javascript 数组。当我执行 var_dump 时,我的 php 数组如下所示:

array (size=2)
  'Key' => string 'a' (length=1)
  'Value' => string 'asite.com' (length=9)

这是我目前在我看来尝试将其转换为 JavaScript 数组的代码:

var tempArray = $.parseJSON(<?php echo json_encode($php_array); ?>);

每当我在浏览器中运行此代码时,控制台中的转换输出是这样的:

var tempArray = $.parseJSON([{"Key":"a","Value":"asite.com"}]);

这是 javascript 多维数组的正确结构吗?我问是因为它在上面的行中不断给我这个错误:

SyntaxError: Unexpected token o

4

4 回答 4

12

您不必调用 parseJSON,因为 json_decode 的输出是 javascript 文字。只需将其分配给一个变量。

var tempArray = <?php echo json_encode($php_array); ?>;

然后,您应该能够以

alert(tempArray[0].Key);
于 2013-06-11T15:37:30.997 回答
6

这对我有用。

<script type='text/javascript'>
<?php
    $php_array = array(
        array("casa1", "abc", "123"), 
        array("casa2", "def", "456"), 
        array("casa3", "ghi", "789" )
    );

    $js_array = json_encode($php_array);
    echo "var casas = ". $js_array . ";\n";
?>

alert(casas[0][1]);

</script>
于 2013-11-26T01:31:17.240 回答
1

不要使用 parseJSON,那是一个字符串。做就是了:

<?php
$php_array = array ('Key'=>'a', 'Value'=>'asite.com');
?>
<html>
<head>

    <script type="text/javascript">
    var tempArray = <?php echo json_encode($php_array); ?>;
    console.log(tempArray);
    </script>
</head>
<body>
</body>
</html>

这在控制台中给了我:

Object { Key="a", Value="asite.com"}
于 2013-06-11T15:41:11.530 回答
-1

只需在 js 函数中添加单引号,例如

var tempArray = $.parseJSON('<?php echo json_encode($php_array); ?>');

于 2013-06-11T15:40:35.640 回答