添加变量到json中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加变量到json中相关的知识,希望对你有一定的参考价值。

所以这里有很多关于这方面的问题,我试了不少都没有成功。

我是想把一个php变量添加到javascript变量中,然后放到json中。

<?php $symbol_json =  $row['symbol_json']; echo $symbol_json; ?> <!--This is OK!-->
</div>
</center>
<center>
<!-- Widget BEGIN -->
<div class="widget-container">
  <div class="widget-container__widget"></div>
  <div class="widget-copyright"><a href="https://aaaaaaa.com/symbols/<?php echo $row['symbol_html']; ?>/" rel="noopener" target="_blank"><span class="blue-text"><?php echo $row['symbol']?> Symbol Info</span></a></div>

  <script>
    var myVar = '<?php echo $symbol_json ?>'; alert(myVar); //This works ok!

    var myObject = JSON.parse('<?php echo json_encode($symbol_json) ?>'); alert(myObject); //Alert works ok!
  </script>

  <script type="text/javascript" src="https://aaaaaaa.com/external-embedding/symbol-info.js" async>
  
  //"symbol": "SDT", //This how it is at present and it works. I need to change it to a variable like below.
  "symbol": myObject, //Whether I use myObject or myVar (which both contain SDT) the widget loads a different symbol. 
  "width": 1000,
  "locale": "uk",
  "colorTheme": "light",
  "isTransparent": false

  </script>
</div>
<!-- Widget END -->
答案

为什么不把变量放到同一个脚本标签里?作为一个一般性的建议,请,请,请不要把PHP和Javascript或HTML混在一起。这是让你的代码变味的最好方法。 你必须解析你的JSON才能将它作为一个变量使用,因此

 var myObject = '<?php echo json_encode($symbol_json) ?>'; 

成为

 var myObject = JSON.parse('<?php echo json_encode($symbol_json) ?>'); 
另一答案

我意识到我可以简单地添加。"symbol": "<?php echo $symbol_json ?>", 虽然把PHP放到JS变量中在另一个实例中也能用,但在这里似乎也能用。控制台错误。SyntaxError.Unexpected token m in JSON Unexpected token m in JSON -- 基本上是说m(是myObject的第一个字母),因此myObject没有被当作一个变量。

以上是关于添加变量到json中的主要内容,如果未能解决你的问题,请参考以下文章

基于现有的 CSV 添加一些变量并附加到 Python 中的现有 JSON

在参数中添加变量时出现语法错误

如何在包json或其他方式中使用env变量

PHP在json字符串中的变量前后添加双引号

Swift 4 可解码 - 附加变量

如何向数据工厂ARM模板添加变量