响应JSON对象还是JSON.stringify?

时间:2014-03-22 17:24:46

标签: json node.js express

假设我想返回JSON内容

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

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

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

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

2 个答案:

答案 0 :(得分:6)

如果您使用快递res.json发送回复,则可以将对象直接发送为application/json编码回复。

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

   res.json(oMyOBject);
});

答案 1 :(得分:3)

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

如果你没有将它转换为JSON字符串,那么纯粹的Node很可能只是将它发送为[object Object],我确信这不是你的意图。

如前所述,Express允许您发送实际的JS对象,并为您执行JSON字符串转换。或者,您可以手动转换它。