【发布时间】:2009-09-07 16:38:35
【问题描述】:
我正在使用 json_encode (PHP) 和 JSON.parser (来自 json.org 的 Javascript) 的组合将 JSON 对象从 PHP 传递到 Javascript,JSON 对象可能有引号和双引号,所以我使用了 addlashes () 函数在 PHP 中。这种组合在 Firefox 中运行良好,但在 Safari、Chrome 或 Internet Explorer 等其他浏览器中却不适用。这是代码:
<?php
$json =array('n' => count($arrayEx), 'items' => array());
foreach($arrayEx as $item)
{
$json['items'][]=array( 'property1' => addslashes($item['property1']),
'property2' =>addslashes($item['property2'])
);
}
$json_string = json_encode($json);
?>
<script>
var json_string= '<? echo $json_string; ?>';
var json_object = JSON.parse(json_string); //Fail in this line
</script>
失败并显示错误消息“字符串文字未结束”。
谢谢
【问题讨论】:
-
你不应该加班。您的 JSON 编码器应该负责将字符串转换为字符串文字格式。
标签: php javascript json