万千封印
拿你的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