从PHP解析javascript中的JSON时出现问题

problems parsing JSON in javascript from PHP

本文关键字:问题 JSON 中的 PHP 解析 javascript      更新时间:2023-09-26

这是我的PHP数组:

$entries = array(
    1420934400 => array(
        'entry' => 'I think I liked it.',
        'data' => 'some'
    ),
    1452470400 => array(
        'entry' => 'Turkey is much better. Tastes more like chicken.',
        'data' => 'no calls'
    ));

然后我转换为JSON

$entries = json_encode($entries);

这将生成字符串:
{"1420934400":{"entry":"I think I liked it.","data":"some"},"1452470400":{"entry":"Turkey is much better. Tastes more like chicken.","data":"no calls"}}

我认为这是有效的JSON。但当我尝试在JavaScript中访问时:

<script>
    var fetchedEntries = JSON.parse(<?php echo $entries ?>);
    console.log('entries: %o', fetchedEntries);
</script>

我得到以下错误:

SyntaxError:JSON.parse:第1行第2列出现意外字符JSON数据

有人看到我哪里错了吗?

您不需要JS中的JSON.parse,因为JS可以直接解释JSON(它被称为JavaScript Object Notation是有原因的;-)。进行

var fetchedEntries = <?php echo $entries ?>;

当您以字符串形式接收JSON数据时,JSON.parse是合适的。例如,这也起作用:

var fetchedEntries = JSON.parse( "<?php echo json_encode( $array_or_obj ); ?>" );