PHP数组到JSON - 未捕获的SyntaxError:意外的输入结束

h4k*_*0rd 1 javascript php json

我有一个存储在变量中的php嵌套数组$myArray,下面是var在将其转储到浏览器之后的样子(它不是一个完整的输出).

<?php var_dump($myArray); ?>
Run Code Online (Sandbox Code Playgroud)

输出:

array (size=4)
  'id' => string '162' (length=3)
  'content' => string 'Test content' (length=12)
  'children' => 
    array (size=16)
      0 => 
        array (size=4)
          'id' => string '29208' (length=5)
          'content' => string 'Test content 1' (length=14)
          'children' => 
            array (size=3)
              ...
      1 => 
        array (size=4)
          'id' => string '29215' (length=5)
          'content' => string 'Test content 2' (length=14)
          'children' => 
            array (size=1)
              ...
      2 => 
        array (size=3)
          'id' => string '29220' (length=5)
          'content' => string 'Test Content 3' (length=14)
Run Code Online (Sandbox Code Playgroud)

从JavaScript读取变量数组如下:

<script type="text/javascript">
var myVar = JSON.parse('<?php json_encode($myArray) ?>');
</script> 
Run Code Online (Sandbox Code Playgroud)

在控制台中返回以下错误

Uncaught SyntaxError: Unexpected end of input
Run Code Online (Sandbox Code Playgroud)

在调试代码时,我做了以下事情:

创建一个新变量并在其中存储一些JSON数据,然后JSON将其解析为另一个变量,然后最终安慰输出,它工作正常.

<script type="text/javascript">
var x = '{"id":123,"content":"This is a test content"}';
var myVar = JSON.parse(x);
console.log(myVar); 
</script> 
Run Code Online (Sandbox Code Playgroud)

输出是控制台中具有这些值的对象:

Object
    content: "This is a test content"
    id: 123
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 5

var myVar = <?php echo json_encode($myArray) ?>; 应该这样做.不需要任何'字符,因为JSON对象可以按写入方式读取,并且不需要解析,因为它直接输出到页面而不是给它一个字符串