响应JSON对象或JSON.stringify?

假设我想返回JSON内容

var content = { a: 'foo', b: 'bar' }; 

返回我的JSON数据的最佳做法是什么?

A)按原样返回对象; 即res.end(content)

B) JSON.stringify(content) ,然后在客户端上调用JSON.parse(content)

如果使用express的res.json发送响应,则可以直接以application/json编码的响应方式发送Object。

 app.get('/route/to/ressource', function(req, res){ var oMyOBject = {any:'data'}; res.json(oMyOBject); }); 

客户端必须始终发送一个string。 协议说的就是这个。 毕竟,HTTP是一个广泛的协议,并不是所有的语言都支持JSON对象,更不用说JavaScript数据了。

如果你不把它转换成JSONstring,那么纯粹的Node可能会把它作为[object Object]发送[object Object] ,我相信这不是你的意图。

如前所述,Express可以让你发送一个实际的JS对象,并为你转换JSONstring。 或者,您可以手动将其转换。