【发布时间】:2019-05-02 06:55:44
【问题描述】:
为了服务器端渲染,我正在将 codeigniter 与 React 集成。我无法将 json 编码数据转换为 javascript JSON 对象。数据是一个对象数组。
当我尝试 JSON.parse 时,我得到了 Unexpected token 在 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 格式的字符串。
【问题讨论】:
-
好的。您想让我们猜猜它返回什么格式,或者您愿意告诉我们/告诉我们吗?
-
去掉单引号
var services = <?php echo json_encode($services); ?>;,如果加引号,就当作字符串字面量处理 -
@Ghost 非常感谢。我很沮丧。你不知道这件小事是如何毁了我整个晚上的。谢谢!
标签: javascript php json reactjs codeigniter