注意:这个问题非常接近Embedding JSON objects in script tags,但对该问题的回答提供了我已经知道的内容(在 JSON /
==中\/
)。我想知道如何进行转义。
<script>
HTML 规范禁止在元素中的任何位置使用封闭的 HTML 标记。因此,这会导致解析错误:
<script>
var assets = [{
"asset_created": null,
"asset_id": "575155948f7d4c4ebccb02d4e8f84d2f",
"body": "<script></script>"
}];
</script>
就我而言,我通过在 Django 模板中呈现 JSON 字符串来生成无效情况,即:
<script>
var assets = {{ json_string }};
</script>
我知道 JSON 解析\/
与 相同/
,所以如果我可以在 JSON 字符串中转义我的结束 HTML 标记,我会很好。但是,我不确定执行此操作的最佳方法。
我天真的方法就是这样:
json_string = '[{"asset_created": null, "asset_id": "575155948f7d4c4ebccb02d4e8f84d2f", "body": "<script></script>"}]'
escaped_json_string = json_string.replace('</', r'<\/')
有没有更好的办法?或者我忽略的任何问题?