根据标题,将HTML放入JSON中是一种好习惯吗?我需要这样做的原因是因为我希望有一个自定义下拉列表,其中列表来自用户输入,json看起来像这样:
{ listTitle: 'Tasks', listHtml: '<ul><li></li>...</ul>' }
我的foreach如下(请记住这是我的代码的精简版本,验证已到位,但为了这个问题,我把它们拿出来了)
$list = /** Code to grab 'Tasks' list and its title from mysql **/;
$title = 'Tasks';
$listHtml = '';
foreach($list as $content) { $listHtml .= '<li>' . htmlspecialchars($content, ENT_QUOTES, 'UTF-8') . '</li>'; }
exit(json_encode(array(
'title' => $title, 'listHtml' => '<ul>' . $listHtml . '</ul>'
)));
我担心可能会有一些特殊字符可能会破坏JSON字符串。请帮忙。
答案 0 :(得分:18)
你不会是第一个这样做的,当然不是最后一个。
要真正回答这个问题,假设您遵循协议/标准并且没有违反协议/标准(例如,包括字符串中的引号而不转义它们),您应该没问题。 json_encode在这一切方面做得很好,但正如@Kolink提到的那样,请确保先将其编码为UTF8,否则偶尔会出现杂散的Unicode字符,导致空输出。
除此之外,程序员首选使用它。有些人会避免它并保持UI在页面上工作,其他人让服务器生成UI并让JavaScript只是转储它 - 无论是你的通话,还是完全可以接受的。
答案 1 :(得分:11)
它没有任何问题。 json_encode
无论如何都会逃脱所有角色,所以你唯一需要注意的是确保你的字符串是utf8_encode
d。
答案 2 :(得分:0)
你可以肯定,但你可以像在JSON中一样轻松地传递值,并将HTML呈现代码放在客户端中;节省服务器周期,带宽字节和逻辑表示混合。