这是我的 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":"我想我喜欢它。","data":"some"},"1452470400":{"entry":"火鸡好多了。味道更像鸡肉.","data":"没有电话"}}
...我认为这是有效的 JSON。但是当我尝试使用 JavaScript 访问时:
<script>
var fetchedEntries = JSON.parse(<?php echo $entries ?>);
console.log('entries: %o', fetchedEntries);
</script>
我收到以下错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
谁能看出我哪里出错了?
最佳答案
在 JS 中不需要 JSON.parse,因为 JSON 可以直接由 JS 解释(它被称为 JavaScript Object Notation 是有原因的 ;-)。做
var fetchedEntries = <?php echo $entries ?>;
当您收到字符串形式的 JSON 数据时,JSON.parse 是合适的。例如,这也适用:
var fetchedEntries = JSON.parse( "<?php echo json_encode( $array_or_obj ); ?>" );
关于javascript - 从 PHP 解析 javascript 中的 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231607/