繁体   English   中英

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

[英]Print PHP JSON encoded array, to JavaScript and decode it, produces errors

我必须使用从PHP到JavaScript的一些数据。 我为此使用JSON。 我使用PHP的json_encode函数对数组进行编码,然后使用JavaScript对其进行解码。

<?php
$data = array(
"..."=>"...",
.....
);
?>

<script>
var data = jQuery.parseJSON('<?php echo json_encode($data); ?>');
console.log(data);
</script>

问题有时是在解析JSON时在JavaScript控制台中产生错误,多数情况下$data包含HTML。

我怎样才能用PHP动态地在javascript中打印json编码的代码?

谢谢!

JSON实际上是JavaScript对象表示法,可以直接在变量中回显,并且不需要解析。

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

错误通常是由于数据包含' (过早终止了字符串文字)或换行符(由JS解析器解析而使JSON无效)引起的。

您可以通过明确地转义此类字符(使用在生成的JSON上运行的字符串替换函数)来解决此问题,但这比值得付出的努力还要多。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM