注: この質問は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'<\/')
より良い方法はありますか?または、私が見落としている落とし穴はありますか?