2012-03-15 38 views
0

我有這些數據的問題,的Json循環Jquery的每個不起作用「未定義」

我的JSON數組數據包括:

 
{"list_file":["{\"id\":\"511\",\"name\":\"Jellyfish.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":775702,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}","{\"id\":\"510\",\"name\":\"Hydrangeas.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":595284,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}","{\"id\":\"509\",\"name\":\"dudnzoizu ufoiuzio fueoifezuoiufifzeouofufzeoiuiofuz oife iofez.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":885242,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}"]} 

當我遍歷這樣

元素
$.each(data.list_file, function(i, file) { 
     alert(file.id); 
    }); 

我得到未定義的警報()中,但如果我這樣做只是這不是

 $.each(data.list_file, function(i, file) { 
     alert(file); 
    }); 

我得到了正確的json行。

謝謝

編輯:與整個陣列此時

+0

,因爲它只是把它當作一個字符串,而不是作爲JSON?警報(typeof文件); ? – mikevoermans 2012-03-15 20:45:58

+0

是否包含在[]中,因爲您發佈的內容不是有效的JSON,除非它被封裝在[]中。如果包裝,那麼你的函數應該可以正常工作... http://jsfiddle.net/skram/F9Mrd/ – 2012-03-15 20:50:13

+0

好的,我已經編輯完整的json代碼的數組 – 2012-03-15 20:55:23

回答

1

我假設你正在做一個ajax調用。您需要指定「json」數據類型,以便jquery將其解析爲json。

$.ajax({ 
    url: url, 
    dataType: "json", 
    success: function (data) { 
     // ... 
    } 
}) 

UPDATE:

你的JSON數組是JSON字符串數組,嘗試改變,爲對象的數組:

{ "list_file": [ "{...}" ]} 

應該

{ "list_file": [ {...} ]} 
+0

我使用getJSON函數 – 2012-03-15 20:54:06

+0

好吧,我會試試這個謝謝 – 2012-03-15 20:59:39

+0

我很確定這是這樣的事情;) – 2012-03-15 21:00:05

0

這是不是一個有效的JSON

你應該用括號把它包起來!你有許多必須在數組中的對象。

修復此問題。稍後檢查。

+0

數據在括號內,這只是我的json數組的一部分 – 2012-03-15 20:46:03

+0

等待,它是一個數組,但應該在[] – dwerner 2012-03-15 20:46:10

+0

@Jerome上傳所有Json – 2012-03-15 20:47:25

2

將[]中的JSON括起來,它會工作。 你有什麼是一個json列表。

並檢查了這Tinker.io

如果您解析JSON,那麼你可以使用正常的符號訪問對象 屬性。

驗證JSON here!

祝你好運!

+0

我的JSON是有效的,實際上我發佈編輯整個數組;) – 2012-03-15 20:53:35

1

什麼你在list_file中有一個字符串,而不是一個Object。其實,你有3個串。每一個對象...嘗試使用類似下面的函數,

$.each(data['list_file'], function(i, file) { 
    alert(JSON.parse(file).id); 
}); 
+0

是的,這是解決方案,謝謝;) – 2012-03-15 21:03:46