2013-06-19 6 views
6

EJS를 Node.JS와 함께 사용하고 JSON 객체를 전달하지만 페이지에서 사용 가능한 객체로 액세스 할 수 있어야합니다. 예기치 않은 토큰 o 오류가 발생했습니다.EJS에서 JSON JS JSON

var initData=JSON.parse(<%-JSON.stringify(list)%>); 

여기에 무슨 문제가 있을까요? 이 렌더링 할 때이 파일의 모습입니다

:

var initData=JSON.parse([{"title":"South Hills Health System - University Health Center","adr":"200 Lothrop St,15213","coords":"40.441875,-79.960813","images":[],"tags":[],"_id":"51c0e9798384f40000000017"},{"title":"Bombay Food Market","adr":"4605 Centre Avenue, Pittsburgh, PA 15213, USA","coords":null,"images":[],"tags":["indian","groceries","ethnic","store"],"_id":"51c0519e02b7cbec73000002"}]); 

답변

15

이 시도 :

var initData = JSON.parse('<%-JSON.stringify(list)%>'); 

OR을 :

var initData = <%-JSON.stringify(list)%>; 
+0

첫 번째는 완벽했다! 왜 작은 따옴표로 작동하는지 설명 할 수 있습니까? –

+1

@GeorgeL'JSON.parse'은 STRING을 매개 변수로 사용하고 출력을 보면'JSON.parse'에 배열을 전달하고 있습니다. 작은 따옴표는 JSON.parse ([{ "title": "..."}]) 대신에 JSON.parse ('[{ "title": "..."}] ' – karaxuna

+1

왜 initData가 문자열이 아닌 객체입니까? 우리는 그것을 문자열 화했다 – OMGPOP