JSON と Django には興味深い問題があります。私はそれをこの問題に絞り込んだと思います。問題は、次のような JSON オブジェクトがあることです。
{"embed": "<iframe width='640' height='360' src='http://www.youtube.com/embed/Sw5Gk1L4LQE?wmode=opaque' frameborder='0' allowfullscreen></iframe>"}
PDB で、これを simplejson.dumps として出力すると、次のようになります (二重引用符に注意してください)。
{"embed": "<iframe width=\\"640\\" height=\\"360\\" src=\\"http://www.youtube.com/embed/Sw5Gk1L4LQE?wmode=opaque\\" frameborder=\\"0\\" allowfullscreen></iframe>"}
実際の HttpResponse オブジェクトは、このように二重エスケープのすべてのセットから 1 つのスラッシュを削除しています。
return HttpResponse(simplejson.dumps(result), 'application/json'
{"embed": "<iframe width=\"640\" height=\"360\" src=\"http://www.youtube.com/embed/Sw5Gk1L4LQE?wmode=opaque\" frameborder=\"0\" allowfullscreen></iframe>"}
クライアントでは、jQuery の parseJSON を使用していますが、単一のエスケープ文字 (3 番目の文字) がエスケープされていると見なされないため、問題が発生しています。しかし、これは実際には有効な JSON ですが、コンソールで parseJSON を直接実行しようとすると 2 番目のものが機能しますが、実際には有効な JSON ではありません (JSONLint.com によると)。
このJSONオブジェクトをDjangoからクライアントに取得し、埋め込みコードをそのままにするためにできることはありますか? 私はそれが私の側の小さなオーバーサイトであることを願っています.