2016-10-17 4 views
1

이스케이프 처리 된 큰 따옴표로 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}]" 
+0

시도'JSON.stringify ('[{ "COUNTRY_CODE" "USA"}] ')'- 문자열을 문자열로 변환하려고하면 결과가 얻게됩니다. 가장 좋은 응답은 방금 배열을 문자열 –

+0

@ KrzysztofSafjanowski 당신은 이미 JSON으로 인코딩 된 데이터를 포함하는 문자열을 문자열 화합니다. –

+0

@ t.niese'dataStr'와 동일합니다. –

답변

1

귀하의 dataStr 실제로 문자열이며, res.json 호출과 같은 문자열을 보내고있다. 당신이 (JSON.parse 또는 사용) 문자열로 넣어하지만, JS 객체/배열하지 않는, JSON으로 데이터를 전송하려면 :

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) 
})