2012-02-17 96 views
0

我可能很簡單地解決問題。我試圖使用jQuery解析這個JSON文件:無法使用jQuery解析JSON

http://pastebin.com/c14G0mJ1

我的jQuery代碼看起來像這樣:

$.post("/xhr/fav_switch", {event_id: event_id}, function(data) { 
    event = jQuery.parseJSON(data); 
    alert(event.pk); 
}); 

但不管我試圖訪問的警報的字段,它總是說undefined。你有什麼想法我做錯了什麼?任何幫助將不勝感激:)

+0

難道你不能調試JS,並找出什麼** IS **裏面的「事件」 – 2012-02-17 23:51:46

+0

我試過,但警報說這是一個對象,而不是數組 – mbajur 2012-02-18 00:44:52

+1

警報將始終顯示它爲目的。但是你可以附加一個實際的調試器,你可以放入一個斷點並檢查對象的所有「內臟」。像Visual Studio甚至FireBug。 http://getfirebug.com/errors – 2012-02-18 01:35:11

回答

3
$.post("/xhr/fav_switch", {event_id: event_id}, function(data) { 
    var events = jQuery.parseJSON(data); 
    var event = events[0]; 
    alert(event.pk); 
}); 

你得到一個數組(返回一個元素),所以event是一個數組。您需要獲取數組的第一個元素以獲取事件對象本身。

+0

是的,就是這樣,謝謝:) – mbajur 2012-02-17 23:51:53

+0

太棒了。如果您滿意,請記住接受答案。 – PatrikAkerstrand 2012-02-17 23:57:21

1

所有數據首先是隻有一個元素的數組,所以你需要訪問它:

event[0].pk 
event[0].fields.updated 
// etc 

而且jQuery的AJAX方法通常解析JSON給你,讓你可能會發現你可以說:

data[0].pk 
data[0].fields.updated 

沒有需要使用event = jQuery.parseJSON(data)