带有空格的 Json 编码字符串

nop*_*ies 5 php wordpress json wordpress-3.5

我正在为 wordpress 开发一个元框类,特别是实现 3.5 中引入的媒体上传。为了在 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
)
Run Code Online (Sandbox Code Playgroud)

问题是,当做一个简单的

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

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

设置数据属性 viajQuery.data()工作得很好,但我不能使用它,因为我将这些表单元素作为中继器,而双 jQuery 调用会破坏中继器。

说说难倒。关于我应该在哪里进行排序的任何指示?

谢谢。

Mus*_*usa 7

使用htmlentities编码的JSON。它将编码所有"破坏属性的内容。

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