2012-10-23 91 views
0

我使用Blueimp Jquery File Upload widget,它返回的東西看起來像一個json數據數組。如果你看看下面的例子中(不是所有JSON數據,使其更易於閱讀):jQuery Json數組問題?

[{"name":"10 (2).jpg","size":264843,"type":"image\/jpeg"}] 

現在,如果我想訪問所述陣列的「名稱」的值,我會怎麼做呢?使用下面的 ,得到這個工作,但後來也當數組只有一個元素長我的日誌得到充分的「未定義」值:

$.each(data.result, function (index, file) { 
     console.log(file.name); 
    }); 

做的console.log(data.result)吐上述陣列實施例I得到,而試圖做的console.log(data.result [0])剛吐出

[ 

顯然Im不得到的東西。 $ .each方法可以很好地處理多個元素,但爲什麼它會失敗,只有一個項目?此外;更重要的是,我如何獲得「名稱」值,因爲在當前的應用程序這就是我所需要的所有信息。

+1

嘗試從$ .each(data.result)替換爲$ .each(data) –

+0

不,它絕對在'結果'中;只是數據不起作用。 – SupaMonkey

回答

1

你有一個字符串,所以data.result [0]會給出第一個字符。看來你必須解析字符串:

var data = jQuery.parseJSON(data.result) 

這可能工作。

+0

這似乎也沒有工作,但這似乎是畸形的JSON。如果你看看這部分:「尺寸」:151512 < - 不應該是「尺寸」:「151512」?但是,不解釋爲什麼.each方法可以處理多個實例,但是隻有一個實例失敗。 – SupaMonkey

+0

「大小」:151512是正確的,JSON中的數字是可以的。但我想知道的是關於jQuery不解碼json,因爲它通常會確定mime類型是json。 – tobspr

0

好了,我添加了 「BlueImp」 插件選項包括:

dataType: 'json', 

突然CONSOLE.LOG(file.name);作品。愚蠢,因爲那是DEFAULT數據類型!不知道爲什麼它開始與上述工作,坦率地不關心 - 感謝幫助球員。