在PHP中,我使用json_encode()来回送HTML5数据属性中的array.

<article data-tags='["html5","jquery","php","test's"]'>

正如您所看到的,最后一个标记(test)包含一个引号,使用json_encode()不带选项会导致解析问题.

So I use json_encode() with the JSON_HEX_APOS parameter, and parsing is fine, as my single quotes are encoded, but I wonder: is there a downside doing it like this?

推荐答案

You need to HTML escape data echoed into HTML:

printf('<article data-tags="%s">',
    htmlspecialchars(json_encode(array('html5', ...)), ENT_QUOTES, 'UTF-8'));

Json相关问答推荐

基于两个条件替换扁平化的SON中的值

为什么terraform不缩小这个策略JSON?'

如何在对象投影(*)上应用滤镜投影([?port==`eth1`])?

如何循环访问多个子数组并在单个JSON中检索数据点

在PowerShell中,如何获取数据对所在的JSON对象的名称

Golang返回的JSON顶级字段是可变的.如何在 struct 中使用

Flutter -控制器问题-JSON API

Python 将 struct 化文本转换和筛选为对象

如何使用 SQL Server 将 json 存储为字符串的列分解/规范化为行和列?

jq json - 按键名 Select

坚持弄清楚如何使用 api 响应来调用以从不同的链接检索响应

Rails 控制器无需编码即可渲染 json

在 Perl Mojolicious 中呈现 JSON 时防止转义字符

Swift:如何从字典中删除空值?

Jackson 的@JsonView、@JsonFilter 和 Spring

如何一次加载无限滚动中的所有条目以解析python中的HTML

Qt使用QJsonDocument、QJsonObject、QJsonArray解析JSON

了解 JSON Schema 草稿版本 4 中的additionalProperties关键字

ASP.NET Web API JSON 输出中没有时间的日期

将 JSON 模式转换为 python 类