Ambil JSON Anda dan .stringify()
itu. Kemudian gunakan .replace()
metode ini dan ganti semua kejadian \n
dengan \\n
.
EDIT:
Sejauh yang saya tahu, tidak ada perpustakaan JS terkenal untuk melarikan diri semua karakter khusus dalam sebuah string. Tetapi, Anda dapat membuat rantai .replace()
metode dan mengganti semua karakter khusus seperti ini:
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.
Tapi itu cukup jahat, bukan? Masukkan keindahan fungsi, karena memungkinkan Anda untuk memecah kode menjadi beberapa bagian dan menjaga alur utama skrip Anda bersih, dan bebas dari 8 .replace()
panggilan berantai . Jadi mari kita letakkan fungsionalitas itu ke dalam fungsi yang disebut escapeSpecialChars()
,. Mari kita pergi ke depan dan melampirkannya ke prototype chain
satu String
objek, sehingga kami dapat menghubungi escapeSpecialChars()
langsung di String objek.
Seperti itu:
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");
};
Setelah kami mendefinisikan fungsi itu, isi utama kode kami sesederhana ini:
var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.escapeSpecialChars();
// myEscapedJSONString is now ready to be POST'ed to the server