这都是在同一个脚本中。我知道ajax和服务器端代码之间的区别。我在这个javascript脚本中交织了php,如下所示:
<script>
<?php
$json_string = json_encode(array("agent_table" => "<span style='float: left;'></span>"));
?>
var response = $.parseJSON('<?php echo $json_string; ?>');
</script>
但parseJson
抱怨错误。从span
删除样式时,错误消失。
错误是'意外的标识符'。这是在Chrome中。
答案 0 :(得分:1)
您的数据中包含'
个字符。这些将继续在JSON中表示为文字'
字符。
您将JSON直接嵌入到JavaScript字符串中,该字符串由'
个字符分隔。在JSON中出现作为数据的第一个'
将终止JS字符串。
将数据格式嵌入另一个数据格式时,这是一个普遍的问题。您正在使用HTML在JavaScript中嵌入JSON。
您的选择:
'
的每个实例替换为\'
(因此它们的意思是“Apostrophe”而不是“JS字符串的结尾”)后一个选项是理智的(只要您的目标不涉及证明PHP可以生成有效的JSON)。
var response = <?php echo $json_string; ?>;
您无需担心进一步转义以插入HTML,因为您需要担心的唯一序列(在脚本元素内)是</script>
而PHP的json_encode
将输出{{无论如何,1}}。
答案 1 :(得分:0)
<script>
<?php
$json_string = json_encode(array(
"agent_table"=> '<span style="float: left;"></span>'
));
?>
var response = <?php echo $json_string;?>;
</script>
答案 2 :(得分:0)
试试吧!!!
<script>
<?php
$json_string = json_encode(array('agent_table' => addslashes('<span style="float: left;"></span>')));
?>
var response = $.parseJSON('<?php echo $json_string; ?>');