【问题标题】:How to convert a json encoded php variable to a JavaScript JSON object in the same file如何将 json 编码的 php 变量转换为同一文件中的 JavaScript JSON 对象
【发布时间】: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 = &lt;?php echo json_encode($services); ?&gt;;,如果加引号,就当作字符串字面量处理
  • @Ghost 非常感谢。我很沮丧。你不知道这件小事是如何毁了我整个晚上的。谢谢!

标签: javascript php json reactjs codeigniter


【解决方案1】:

去掉php周围的引号,你想要一个js对象而不是字符串

var services = <?php echo json_encode($services); ?>;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2012-06-10
    • 2016-12-26
    • 2018-04-28
    相关资源
    最近更新 更多