使用Json编码字符串时如何处理空格

5

我正在为WordPress开发一个元框类,并专门实现在3.5中引入的媒体上传功能。为了在元框类和媒体上传器之间传递选项,我喜欢使用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格式不正确。将任何带有空格的字符串值用双引号括起来也无济于事。

通过jQuery.data()设置数据属性可以完美解决问题,但由于我需要将这些表单元素作为重复器使用,而双重jQuery调用会破坏重复器,因此我无法使用它。

真是一头雾水。您有什么建议可以帮助我解决这个问题吗?

谢谢。

1个回答

7
使用htmlentities来编码json。它将编码所有的",这可以避免属性中断。
echo '<h1 id="stumped" data-stumped="'.htmlentities(json_encode($data_ar)).'">test</h1>';

快速而完美!今天找了很久才找到这个。谢谢。 - noponies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接