2013-06-19 7 views
6

में ईजेएस से JSON ऑब्जेक्ट से JSON मैं नोड.जेएस के साथ ईजेएस का उपयोग कर रहा हूं, और इसमें एक 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)%>'); 

या:

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

पहले एक पूरी तरह से काम किया! क्या आप समझा सकते हैं कि सिंगल कोट्स क्यों काम करता है? –

+1

@GeorgeL 'JSON.parse' STRING को पैरामीटर के रूप में लेता है और आपके आउटपुट को देखता है, आप 'JSON.parse' में सरणी पास कर रहे हैं। एकल उद्धरण यह करता है: 'JSON.parse ('[{" शीर्षक ":" ... "}]') इसके बजाय:' JSON.parse ([{"शीर्षक": "..."}]) ' – karaxuna

+1

एक स्ट्रिंग के बजाय initData ऑब्जेक्ट क्यों है? हमने इसे – OMGPOP