Json使用空格编码字符串

时间:2013-04-26 03:49:39

标签: php json wordpress wordpress-3.5

我正在开发一个用于wordpress的metabox类,并专门实现3.5中引入的Media Uploading。要在metabox类和媒体上传器之间传递选项,我喜欢使用json。我的基本数据结构如下($data_ar)。

Array
(
    [uploader_title] => Upload or choose a video file
    [uploader_button] => Choose
    [allowed_mimes] => Array
        (
            [0] => application/x-shockwave-flash
            [1] => application/pdf
        )

    [show_icon] => 1
    [show_url] => 1
    [show_file_title] => 1
)

问题在于做一个简单的

echo '<h1 id="stumped" data-stumped="'.json_encode($data_ar).'">test</h1>';

导致包含json的数据属性格式错误。问题是数组中是否存在带空格的任何字符串。用双引号括起任何带有空格的sting值都无济于事。

通过jQuery.data()设置数据属性非常有效,但我无法使用它,因为我将这些表单元素作为转发器,并且双jQuery调用会中断转发器。

谈论难倒。关于我应该对此进行排序的任何指示?

感谢。

1 个答案:

答案 0 :(得分:4)

使用htmlentities对json进行编码。它将编码所有正在破坏属性的"

echo '<h1 id="stumped" data-stumped="'.htmlentities(json_encode($data_ar)).'">test</h1>';