JSON.stringify - 数组中使用反斜杠的奇怪行为

时间:2015-04-14 23:45:41

标签: javascript json

我正在玩JS,而我注意到一个奇怪的行为,反斜杠\插入到使用JSON.stringify()打印的数组中的字符串中。当然反斜杠用于转义特殊字符,但如果我们需要在字符串中放入反斜杠会发生什么?只需使用反斜杠来逃避自己的想法,但它不适用于JSON.stringify

这应该打印一个反斜杠

array = ['\\'];
document.write(JSON.stringify(array));

这应该打印两个反斜杠

array = ['\\\\'];
document.write(JSON.stringify(array));

我错过了什么吗?可能被认为是JSON.stringify的错误吗?

1 个答案:

答案 0 :(得分:3)

这是对的。 JSON.stringify将返回重新创建该对象所需的字符串 - 因为您的字符串要求您转义反斜杠,它还将返回所需的转义反斜杠以正确生成字符串。

试试这个:

array = ['\\'];
var x = JSON.stringify(array)
var y = JSON.parse(x)
if (array[0] == y[0]) alert("it works")

array = ['\\'];
if (JSON.parse(JSON.stringify(array))[0] == array[0]) alert("it really works")