javascript - JSON.stringify - 数组中带有反斜杠的奇怪行为

标签 javascript json

我在玩 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/

相关文章:

java - 想要将 json 对象映射为 java 对象

javascript - Mocha - 如何测试 Unresolved promise ?

javascript - jQuery ajax 在 chrome 中工作,但在 IE 9 中不起作用

javascript - 使图像可旋转 jquery UI

javascript - javascript 中的时间切片是如何发生的?

javascript - 删除括号前后的所有空格

php json可读格式

javascript - 如何在 D3.js 强制布局中链接来自 json 数据的额外属性?

ios - 第一次单击按钮时未显示数据

json - 无法在 https 服务器中下载 json 数据,在本地同样可以正常工作