提问者:小点点

PHP数组到JSON-未捕获语法错误:输入意外结束


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

<?php var_dump($myArray); ?>

输出:

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)

从JavaScript读取变量数组,如下所示:

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

在控制台中返回以下错误

Uncaught SyntaxError: Unexpected end of input

调试代码时,我执行了以下操作:

创建了一个新变量并在其中存储了一些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> 

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

Object
    content: "This is a test content"
    id: 123

我做错了什么?


共3个答案

匿名用户

var myVar=

匿名用户

您需要回声出json对象。

<?php json_encode($myArray) ?>

<?php echo json_encode($myArray) ?>

匿名用户

这里有个小技巧给你解释一下

您可以简单地执行

因此,对于您的问题的答案(如果启用了速记打开标记),您可以使用此选项

var myVar=