2015-12-26 33 views
0

我有一個數組,其中存儲來自db的數據。我已經由字符串化,這導致JSON這樣轉換該陣列分成JSON:訪問由stringify生成的json

var view_data = [{ f o o = " boo " , t e x t = "t e s t " }]; 

當我嘗試通過訪問此Foo對象for循環是這樣的:

for(var d=0; d<view_data.length; d++) 
{ 
    print view_data[d].foo; 
} 

它給未定義。我認爲這實際上並不是json對象是字符串數組。 請幫我訪問鍵值對。

+0

stringify的輸出是一個字符串,而不是一個對象 – saljuama

+0

然後應該如何訪問該數組作爲json對象 –

回答

0

你似乎對JSON的含義模糊不清。 JSON是一種用於交換數據的基於字符串的格式。在JavaScript正常編程的過程中,它並沒有被使用,也沒有關係,除非您將數據發送到某個地方,或者從JSON格式的某個地方接收數據。

我已經由字符串化,這導致JSON這樣轉換該陣列分成JSON:

var view_data = [{ f o o = " boo " , t e x t = "t e s t " }]; 

JSON.stringify需要JavaScript對象並將其轉換成一個基於字符串的格式。因此這是不可能的。如你所示,JSON.stringify將總是返回一個字符串,而不是(破碎的)JS對象。

在您的示例數據中,您在屬性名稱中顯示了額外的空格:"f o o"而不是"foo"。如果事實上這就是你如何試圖指定你的JS對象,那麼它根本無法工作。這是無效的語法。使用等號也是無效的語法;你需要冒號。

如果你正確地定義你的JS對象,那麼你表現的代碼將正常工作:

var view_data = [{foo: "boo" , text: "test"}]; 

for (var d=0; d<view_data.length; d++) { 
    print view_data[d].foo; 
} 

訪問產生的JSON字符串化通過

你不訪問由字符串化JSON產生。 JSON是一種字符串格式,僅用於與某些外部系統進行通信。

那麼應該如何訪問數組作爲JSON對象

有一個JSON對象沒有這樣的事情。有JSON,這是一個字符串;並有JavaScript對象。

有關JavaScript對象與JSON的更多信息,請參閱How to parse variables to JSON Object (Javascript)

+0

其實我是新來的Js。所以,請幫助。我有一個應用程序在快遞中,其中有一個數組,我從postgresql查詢收集數據。我希望它發送到另一個ejs模板。解析函數不起作用,所以我使用stringify。 –

+0

請將問題標記爲node,express和/或ejs。提供代碼。 –