2013-06-19 83 views
6

Tôi đang sử dụng EJS với Node.JS và đang truyền một đối tượng JSON vào nó, nhưng cần phải có quyền truy cập vào đối tượng đó làm đối tượng có thể sử dụng trong trang. Tôi nhận được lỗi mã thông báo không mong muốn o từ điều này:JSON từ EJS đến đối tượng JSON trong JS

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

Tôi không thể tìm ra điều gì sai ở đây.

Đây là những gì nó trông giống như trong file khi hiển thị:

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"}]); 

Trả lời

15

thử điều này:

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

OR:

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

đầu tiên làm việc một cách hoàn hảo! bạn có thể giải thích tại sao các dấu nháy đơn làm cho nó hoạt động được không? –

+1

@GeorgeL 'JSON.parse' lấy STRING làm tham số và xem kết quả của bạn, bạn đang truyền mảng trong' JSON.parse'. các dấu nháy đơn thực hiện điều này: 'JSON.parse ('[{" title ":" ... "}]')' thay vì điều này: 'JSON.parse ([{" title ":" ... "}]) ' – karaxuna

+1

tại sao initData là một đối tượng thay vì một chuỗi? chúng tôi đã xâu chuỗi nó – OMGPOP

Các vấn đề liên quan