这个问题是关于
why the outputs are different
不是我怎样才能获得正确的输出。
我无法理解为什么以下两种情况的输出不一样,即使我为 JSON.parse() 函数提供相同的参数也是如此。
第一个场景
obj = {a:"asdf"};
var newObj = JSON.parse(JSON.stringify(obj)); //newObj = {a:"asdf"}
第二种情况
var newObj = JSON.parse("{"a":"asdf"}"); //this gives an error
最佳答案
问题出在引号上。
var newObj = JSON.parse('{"a":"asdf"}');
应该可以正常工作。
在 Javascript 中,我们使用引号(单引号或双引号)来表示字符串。当您想定义一个包含引号的字符串时,您必须使用不同的引号,或者使用反斜杠 \
字符转义
引号。
var newObj = JSON.parse("{\"a\":\"asdf\"}");
也可以正常工作。
你可能会认为
var newObj = JSON.parse("{'a':'asdf'}");
可以,但不行。在 JSON 中,字符串仅使用双引号定义。
关于javascript - 相同输入的 json.parse 的不同行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420724/