json_encode()抛出无效的json

时间:2012-04-25 17:31:20

标签: php json

我在这个数组上使用json_encode();<sup id="1">中的双引号正在打破它...任何人都可以解释原因吗?不应该构建此功能来自动保护这些数据吗?

array(
    'Content' => array(
        'GUID' => '7dbbfdfd-d1b2-46bd-934f-0730bcf55495',
        'Publish_Date' => '2012-04-10 19:28:13',
        'Content_Type' => 'Header',
        'Content_Body_Type' => 'OVERVIEW',
        'Paperless' => 'REQUIRED_EDELIVERY',
        'Status' => 'Proof',
        'Body' => htmlentities('<h3>This is a subhead</h3>
<p>This is sample content<sup id="1">1&nbsp;</sup>with variables:&nbsp;&lt;Outside_Sales&gt;&lt;Support_Services_Program&gt;</p>
<p>Bulleted list:</p>
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<p>more text</p>'),

我使用http://jsonlint.com来确定问题

2 个答案:

答案 0 :(得分:3)

这可能是一个双重转义问题,因为您使用htmlentities()然后json_encode()

只需使用json_encode()

一般来说,最好只在输出过程中逃避。这样你就可以维护原始数据了。

答案 1 :(得分:0)

你需要去掉,通过。在每个双引号之前添加\ - 例如:\“1 \”