Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么字符串化JSON是有效字符串?_Javascript_Json - Fatal编程技术网

Javascript 为什么字符串化JSON是有效字符串?

Javascript 为什么字符串化JSON是有效字符串?,javascript,json,Javascript,Json,我们已经意识到不能在双引号内添加双引号: var str=”“hello”“//这将是无效的字符串 但是当我把这样的物体串起来 var obj = {"name":"abc"} var str = JSON.stringify(obj). str // returns "{"name":"abc"}" 这是有效的,但不应该。我很困惑,当我们对JSON对象进行字符串化并忽略其上的字符串验证时,JavaScript是否有一些特殊情况 提前感谢。字符串文字中可以有任意多个双引号。您只需要使用反斜杠前

我们已经意识到不能在双引号内添加双引号:

var str=”“hello”“//这将是无效的字符串

但是当我把这样的物体串起来

var obj = {"name":"abc"}
var str = JSON.stringify(obj).
str // returns "{"name":"abc"}"
这是有效的,但不应该。我很困惑,当我们对JSON对象进行字符串化并忽略其上的字符串验证时,JavaScript是否有一些特殊情况


提前感谢。

字符串文字中可以有任意多个双引号。您只需要使用反斜杠前缀(\“而不是”)来替换它们。 在浏览器控制台中尝试以下示例:

var myStr = "\"Hello\"";
myStr

您应该在控制台中看到
“Hello”“
。这就是stringify创建带有双引号的字符串的方式。

这就是您的控制台表示要显示的字符串的方式。一个更有效的例子是
'{“name”:“abc”}
Javascript控制台的开发人员只是选择了一种令人困惑的方式来显示字符串。