我使用node.js来处理ajax请求并返回一个对象。
如果我使用res.json(obj);
,那么我会得到string
,我可以使用JSON.parse(string)
将其转换为对象,一切都很好。
但如果我使用res.json(JSON.stringify(obj))
,我也可以获得string
,但JSON.parse(string)
不会将其转换为对象。
两个string
之间的区别是什么?他们的内容看起来一样。我正在使用typeof()
来检查它们。
答案 0 :(得分:0)
所以res.json
使用了JSON.stringify(参见第242行),但它确实通过指定自己的json replacer
和json spaces
来进行自己的编辑。
这些都是JSON.stringify
可以用来改变它对JSON进行字符串化的方式。仔细观察后,似乎json spaces
和json replacer
默认情况下没有设置,因此Express只是简单地设置它,以便在应用设置中设置它们时,它会提取它们并确保您的JSON响应匹配正确。
它还可以设置内容类型等等。