我有一个创建'post'的AJAX请求,并且在成功发布后,我希望将HTML注入到DOM中。现在我正在返回一个详细说明成功/错误的JSON数组,当我成功时,我还在响应中包含了帖子的HTML。因此,我将响应解析为JSON,并将JSON数组中的键设置为一堆HTML代码。
当然,HTML代码正在使JSON数组中断 - 我该怎么做才能逃避它(或者有更好的方法来实现这个目标吗?)。我得到一个带有JSON数组的AJAX响应,如下所示:
[{response:"success"},{html:'<div class="this is going to break...
谢谢!
答案 0 :(得分:1)
与您在JavaScript中习惯使用的相反,'无法在JSON中开始字符串。当你将JSON传递给JavaScript时,它是严格的“。单引号工作 ..当你想要放置XHTML换行符时,很像<br>
工作。
因此,请使用“打开HTML字符串,并使用\”清理报价。
json.org有更多信息WRT你应该清理什么。虽然特殊字符列表不长,但最好使用像Anurag在评论中建议的库。
答案 1 :(得分:1)
除了BranTheMan提到的双引号之外,换行符也会破坏JSON字符串。您需要使用\n
替换换行符。
就我个人而言,我发现这已经足够了:
// Don't know what your serverside language is, example in javascript syntax:
print(encodeJSON({
response : "success",
html : htmlString.replace(/\n/g,'\\n').replace(/"/g,'\\"')
}));