响应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。 或者,您可以手动将其转换。