2012-11-05 4 views
1

이 질문은 다른 정보로 다시 게시됩니다.노드 js가 응답으로 json 본문을 보냄

세 가지 매개 변수가 있습니다.

response.writeHead(200, 
     {  
     'Content-Type': 'text/json'    
     });  
     response.end({ID:'bufid',Name: bufname,address: bufaddrss}); 

    } 

이것은 작동하지 않습니다. 은 여기가로 200 OK JSON 몸에 최종 사용자에게 보낼 :

여기
{'ID; :'123', 
    'Name': 'alice', 
    'address': 'xxxxx'} 

bufid, bufname 및 bufaddrss가 액세스 할 수있는 기능에 의해 결정되는 값은 어떤 곳 (그들은 전역)

{ID:'bufid',Name: bufname,address: bufaddrss} 

이 JSON되지 않습니다 :

는 어떻게 그 정보

답변

2

먼저 다음과 같은 것을 깨달아야을 보낼 수 있습니다. JSON은 프로토콜입니다. 이것은 자바 스크립트 객체 리터럴 구문과 유사한 구문을 사용하여 자바 스크립트 객체를 인코딩하는 문자열입니다 (따라서 대부분의 사람들이 "JSON"이라는 용어와 혼동을 일으 킵니다).

먼저 해당 객체를 JSON 형식의 문자열로 변환해야합니다. 다행히도 노드에는 메서드가 내장되어 있습니다 : JSON.stringify().

response.end(
    JSON.stringify({ID: bufid,Name: bufname,address: bufaddrss}) 
); 
+0

답장 /. bufid, bufname 및 bufaddrss 값은 가변 값입니다. 이 변수의 값을 variablename이 아닌 인쇄하도록합니다. 당신이 bufid를 인쇄 할 것을 제안한 것과 함께. 하지만 그 bufid 변수에있는 값을 원합니다 –

+0

방금 ​​코드를 복사하여 붙여 넣었습니다. 이제 해결되었습니다. – slebetman

+0

해당 bufid 및 bufname, bufaddrsvalue 함께 인쇄하지? JSON.stringify ({ID : bufid})하면 작동합니다. 하지만 JSON.stringify ({ID : bufid, Name : bufname)하면 인쇄되지 않습니다. 그냥 "ID"를 출력합니다 : "", "Name": "" " –