将PHP JSON编码的数组打印到JavaScript并对其进行解码,产生错误

时间:2017-08-07 12:53:56

标签: javascript php json

我必须使用从PHP到JavaScript的一些数据。我正在使用JSON。我使用PHP的def __init__(self, n): ''' Initialize a Hand. n: integer, the size of the hand. ''' self.hand = {} # ... and the rest 函数对数组进行编码,然后我想用JavaScript解码它。

json_encode

问题有时会在解析JSON时在javascript控制台中产生错误,大多数情况下<?php $data = array( "..."=>"...", ..... ); ?> <script> var data = jQuery.parseJSON('<?php echo json_encode($data); ?>'); console.log(data); </script> 包含HTML。

如何在javascript中打印json编码的代码,与PHP一起打印?

谢谢!

2 个答案:

答案 0 :(得分:4)

JSON实际上是JavaScript Object Notation,它可以直接在变量中回显,并且不需要解析。

var data = <?= json_encode($data); ?>;

答案 1 :(得分:2)

错误通常来自数据包含'(过早终止字符串文字)或新行字符(由JS解析器解析并呈现JSON无效)。

你可以通过显式转义这些字符来解决这个问题(在生成的JSON上运行一个字符串替换函数),但这比付出更多努力。

由于JSON是JavaScript文字语法的子集,因此您可以直接将其视为JavaScript。您不需要将其包装在字符串中,然后将该字符串解析为JS数据结构。

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