使用您的JSON及其它.stringify()
。然后使用.replace()
方法和替换所有出现的\n
用\\n
。
编辑:
据我所知,还没有知名的JS库可用于转义字符串中的所有特殊字符。但是,您可以链接.replace()
方法并替换所有特殊字符,如下所示:
var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
// myEscapedJSONString is Now ready to be POST'ed to the server.
但这很讨厌,不是吗?输入功能之美,它们使您可以将代码分解成多个部分,并使脚本的主要流程保持整洁,并且没有8个链接.replace()
调用。因此,让我们将该功能放入称为的函数中escapeSpecialChars()
。让我们继续前进,并将其连接到prototype chain
该的String
对象,所以我们可以调用escapeSpecialChars()
直接对String对象。
像这样:
String.prototype.escapeSpecialChars = function() {
return this.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
};
var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.escapeSpecialChars();
// myEscapedJSONString is Now ready to be POST'ed to the server