Node Express&JSON响应格式

我想知道为什么我得到我的JSON响应与双引号转义。 将JSON响应发送回客户端的最佳做法是什么?

代码

var express = require('express'); var server = express(); var country = ''; var dataStr = '[{"country_code" : "USA", "country_name" : "United States","bac_limit" : 0.80}, { "country_code" : "CAN", "country_name" : "United States","bac_limit":0.80}]'; connectToMongoDb(); server.get('/', function(req, res){ country = req.query.country; res.json(dataStr); }); server.listen(8080); 

输出

 "[{\"country_code\" : \"USA\", \"country_name\" : \"United States\",\"bac_limit\" : 0.80}, { \"country_code\" : \"CAN\", \"country_name\" : \"United States\",\"bac_limit\":0.80}]" 

你的dataStr实际上是一个string, res.json调用发送string。 如果你想发送数据为JSON,不要把它作为一个string,而是一个JS对象/数组(或使用JSON.parse ):

 var dataStr = [{"country_code" : "USA", "country_name" : "United States","bac_limit" : 0.80}, { "country_code" : "CAN", "country_name" : "United States","bac_limit":0.80}] // alternatively, JSON.parse(dataStr) connectToMongoDb() server.get('/', function(req, res){ country = req.query.country res.json(dataStr) })