2012-03-30 122 views
0

我正在使用jQuery從服務器獲取數據。數據即將到來。這裏我在做什麼從JSON獲取數據後不顯示

$.ajax({ 

    url: "EventCalendar_Review", 
    dataType: "json", 
    success: function(data) { 

     console.log(data); 
     var a = data.eventTitle; 
     var b = data.fromDate; 
     var c = data.toDate; 
     var d = data.url; 

    }, //end of success 

    complete: function(request, textStatus) { 
     var req = request; 
     var status = textStatus;    
    } //end of complete 

}); //end of .ajax 

數據變量的JSON格式是這樣的

[object{ eventId=1, eventTitle="Khan to hold maide", fromDate="2012-03-06", toDate= "2012-03-07" more...}, Object { eventId=2, eventTitle="India tie not about revenge", fromDate="2012-03-06", more..}, ...] 

數據數據在控制檯打印。但是,當我剛剛使用console.log(數據)

console.log(data); 
var a = data.eventTitle; 
var b = data.fromDate; 
var c = data.toDate; 
var d = data.url; 

然後,我得到a,b,c和d未定義。一個sholud可以獲得eventTitle的價值(Khan hold maide)等等。爲什麼我變得不確定?

感謝

+1

JSON在值之間使用冒號分界符,而不是等號。 – 2012-03-30 13:32:34

回答

0

假設使它成爲一個有效的JSON對象(http://jsonlint.com),那麼你已經有了對象的數組:

for (var i=0;i<data.length;i++) { 
    var thisOne = data[i]; 

    var a = thisOne.eventTitle; 
    var b = thisOne.fromDate; 
    var c = thisOne.toDate; 
    var d = thisOne.url; 

    // do something with these variables. 
} 

如果你只是想的第一個對象,您可以使用data[0]來訪問它:

var a = data[0].eventTitle; 
var b = data[0].fromDate; 
var c = data[0].toDate; 
var d = data[0].url; 
+0

@EvilP @JustinEthier是的,你們都是對的。我做錯了。但現在我這樣做了,我得到了價值:)。 '$ .each(data,function(index,event){abc.push({title:event.eventTitle,start:event.fromDate,end:event.toDate,url:event.url});});感謝大家:) – Basit 2012-03-30 13:45:30

0

看起來您正在獲取數組。如果您嘗試按索引訪問您的數據,該怎麼辦:

var a = data[0].eventTitle; 
var b = data[0].fromDate; 
var c = data[0].toDate; 
var d = data[0].url; 
0

因爲您的JSON無效!
JSON不使用=它使用:

"key":"value"代替"key"="value"
好像你還沒有收到和JSON對象從您的服務器。
您正在接收一組對象!

+0

你是對的。 JSON使用key:值。其實我正在使用谷歌API來將我的數據轉換爲JSON格式,可能這就是爲什麼我需要''key「=」value「格式的數據。這是JSON,這就是爲什麼我提到我的dataType JSON'dataType:「json' – Basit 2012-03-30 14:10:37