本文详解如何正确将动态生成的 html 字符串(如患者信息表格)作为字段值嵌入 json 响应,避免因手动拼接、未转义或编码不当导致的 json 格式错误。核心方案是全程使用 json_encode() 自动处理转义,禁用字符串拼接构造 json。
在 Web 开发中,常需将 HTML 片段(例如患者档案表格)作为数据字段返回给前端(如用于弹窗渲染或富文本展示)。但若直接将 HTML 字符串赋值给数组再 json_encode(),却仍出现 JSON 解析失败(如在 JSON Formatter 中报错),往往是因为:
- ✅ HTML 字符串本身含换行符(\n)、制表符(\t)、斜杠(/)或双引号(”)等特殊字符;
- ❌ 手动拼接 JSON 字符串(如 ‘{“entities”: ‘ . $jasondata . ‘}’)极易破坏结构,且无法保证内部字符串的 JSON 合法性;
- ⚠️ 未对数据库查询做参数化处理,存在 SQL 注入风险。
正确做法:全链路交由 json_encode() 处理
PHP 的 json_encode() 默认会对字符串中的特殊字符(包括 , /, \n, \t, “, ‘ 等)自动进行 JSON 转义(如 “你唯一需要做的,是把所有数据组织成 PHP 关联数组,然后一次性 encode。
以下是重构后的完整示例: