我正在开发一个用于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调用会中断转发器。
谈论难倒。关于我应该对此进行排序的任何指示?
感谢。
答案 0 :(得分:4)
使用htmlentities
对json进行编码。它将编码所有正在破坏属性的"
。
echo '<h1 id="stumped" data-stumped="'.htmlentities(json_encode($data_ar)).'">test</h1>';