出于服务器端渲染的目的,我正在将Codeigniter与React集成在一起。我在将JSON编码的数据转换为JavaScript JSON对象时遇到麻烦。数据是对象数组。
当我尝试JSON.parse时,我得到了意外的令牌 JSON错误。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang = "en">
<head>
<script crossorigin
src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-
dom.development.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/babel-
standalone/6.26.0/babel.js"></script>
<meta charset = "utf-8">
<title>CodeIgniter View Example</title>
<style>
.header{
background-color:'#000';
}
h1{
color:'white';
}
</style>
</head>
<body>
<?php $this->load->view('templates/header'); ?>
<div id = 'root'>
</div>
</body>
<script type="text/javascript">
var services = '<?php echo json_encode($services); ?>';
console.log(services);
</script>
</html>
代码输出的字符串包含所有数据,但不是JSON格式。
答案 0 :(得分:2)
删除php周围的引号,您想要一个js对象而不是字符串
var services = <?php echo json_encode($services); ?>;