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 对象已经从每组这样的双重转义中删除了一个斜杠。
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 时,第二个有效,但它实际上不是有效的 JSON(根据 JSONLint.com)。
关于如何将这个 JSON 对象从 Django 获取到客户端并保持嵌入代码完整的任何想法?我希望这对我来说是一个小的oversite。