与json对象和字符串以及JSON.parse和JSON.stringify混淆

时间:2015-10-26 08:19:04

标签: javascript json string

我使用node.js来处理ajax请求并返回一个对象。

如果我使用res.json(obj);,那么我会得到string,我可以使用JSON.parse(string)将其转换为对象,一切都很好。

但如果我使用res.json(JSON.stringify(obj)),我也可以获得string,但JSON.parse(string)不会将其转换为对象。

两个string之间的区别是什么?他们的内容看起来一样。我正在使用typeof()来检查它们。

1 个答案:

答案 0 :(得分:0)

所以res.json使用了JSON.stringify(参见第242行),但它确实通过指定自己的json replacerjson spaces来进行自己的编辑。

这些都是JSON.stringify可以用来改变它对JSON进行字符串化的方式。仔细观察后,似乎json spacesjson replacer默认情况下没有设置,因此Express只是简单地设置它,以便在应用设置中设置它们时,它会提取它们并确保您的JSON响应匹配正确。

它还可以设置内容类型等等。