Not: Bu soru Embedding JSON objects in script tags'a çok yakındır, ancak bu sorunun yanıtları zaten bildiğim şeyi sağlar (JSON /
== \/
). Kaçmayı nasıl yapacağımı bilmek istiyorum.Python ile JSON'daki HTML etiketlerinde '/' kapanışından nasıl kurtulurum?
HTML özellikleri, kapalı HTML etiketlerini <script>
öğesinin herhangi bir yerinde yasaklar.
<script>
var assets = [{
"asset_created": null,
"asset_id": "575155948f7d4c4ebccb02d4e8f84d2f",
"body": "<script></script>"
}];
</script>
, ben yani Django şablonu içinde bir JSON dizesi render tarafından geçersiz durumu üretme ediyorum:
<script>
var assets = {{ json_string }};
</script>
JSON \/
ayrıştırır biliyoruz Yani, bu ayrıştırma hatalara neden olur /
ile aynı, bu yüzden JSON dizesinde kapanan HTML etiketlerimi kullanabiliyorsam, iyi olacağım. Ama bunu yapmanın en iyi yolu olduğundan emin değilim. Daha iyi bir yol
json_string = '[{"asset_created": null, "asset_id": "575155948f7d4c4ebccb02d4e8f84d2f", "body": "<script></script>"}]'
escaped_json_string = json_string.replace('</', r'<\/')
var mı:
Benim saf yaklaşım sadece bu olurdu? Ya da baktığım herhangi bir kova var mı?
Ama bu sadece XHTML için çalışıyor, değil mi? '' '' '' CDATA'' ile çalışmıyor. Bu yüzden JSON’dan kaçmayı tercih ettim. Soru, kaçış için dizgenin nasıl değiştirileceğinden, metnin kendisinden nasıl kaçılacağından daha fazlasıydı. –
@GeoffreyHing Ah evet XHTML bölümünü hatalı olarak kabul ettim. DJango kaçan kısmı için cevabımı güncelledim. – cwgem
@GeoffreyHing: django, '' django.utils import simplejson '' yöntemini kullanarak içe aktaracağınız basit bir kopya ile birlikte gönderir, böylece ayrı olarak yüklemeniz gerekmez. –