繁体   English   中英

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

[英]Confused with json object and string and JSON.parse and JSON.stringify

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

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

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

这两个string什么区别? 它们的内容看起来相同。 我正在使用typeof()进行检查。

因此res.json使用JSON.stringify(请参见第242行),但是它通过指定自己的json replacerjson spaces来进行自己的编辑。

这都是JSON.stringify可以用来改变JSON字符串化方式的东西。 在更深入地研究之后,似乎默认情况下未设置json spacesjson replacer器,因此Express会简单地进行设置,以便如果在您的应用程序设置中设置了它们,它将拉出它们并确保您的JSON响应正确匹配。

它还执行一些操作,例如设置内容类型等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM