未捕获的SyntaxError:意外的输入结束

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

<?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

我究竟做错了什么?


var myVar = <?php echo json_encode($myArray) ?>; 应该这样做。 没有'字符是必需的,因为JSON对象可以按照书面读取,并且不需要解析,因为它直接输出到页面而不是给它一个字符串


你需要回显json对象。

<?php json_encode($myArray) ?>

<?php echo json_encode($myArray) ?>

这是你在这里解释的一个简短的速记技巧

你可以简单地做<?=$var?> 。 它基本上是echo的缩写,只有在简写标签<? 已启用。

所以你的问题的答案(如果速记打开标签被启用),你可以使用这个

var myVar = <?=json_encode($myArray)?>; 这相当于@Dar在上面给你的东西,但不那么难看。

链接地址: http://www.djcxy.com/p/59351.html

上一篇: Uncaught SyntaxError: Unexpected end of input

下一篇: Do I need a trailing semicolon here?