【发布时间】:2013-02-24 04:14:11
【问题描述】:
注意:这个问题与Embedding JSON objects in script tags 非常接近,但对该问题的回答提供了我已经知道的内容(在 JSON 中 / == \/)。我想知道如何进行转义。
HTML 规范禁止在 <script> 元素中的任何位置使用封闭的 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'<\/')
有没有更好的方法?还是我忽略的任何问题?
【问题讨论】:
标签: python html django escaping