我在玩 JS 时注意到一个奇怪的行为,即反斜杠 \
插入到使用 JSON.stringify()
打印的数组中的字符串中。当然反斜杠是用来转义特殊字符的,但是如果我们需要在字符串中加入反斜杠会怎样呢?只需使用反斜杠来转义您所想的本身,但它不适用于 JSON.stringify
这应该打印一个反斜杠
array = ['\\'];
document.write(JSON.stringify(array));
这应该打印两个反斜杠
array = ['\\\\'];
document.write(JSON.stringify(array));
我错过了什么吗?可以认为这是 JSON.stringify 的错误吗?
最佳答案
这是正确的。 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")
关于javascript - JSON.stringify - 数组中带有反斜杠的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29639251/