按照标题,将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字符串。请帮忙。
您不会是第一个这样做的人,当然也不会是最后一个。
要真正回答这个问题,假设您遵循协议/标准并且没有破坏它(例如,在字符串中包含引号而不进行转义),则应该没问题。json_encode在所有这些方面都做得很好,但是正如@Kolink所提到的,请确保首先将其编码为UTF8,否则杂散的Unicode字符有时会破坏它,从而导致输出为空。
除此之外,程序员更喜欢使用它。有些人避免使用它并使UI在页面上保持工作状态,其他人则让服务器生成UI并让JavaScript只是转储它- 无论哪种方式都是您的调用,并且完全可以接受。