从JSON获取数据后未显示数据

时间:2012-03-30 13:30:28

标签: jquery

我正在使用jQuery从服务器获取数据。数据即将到来。这就是我在做什么

 $.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 undefined。一个sholud得到eventTitle的价值(汗可以控制maide)等等。为什么我得到了未定义?

由于

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

看起来你回来了。如果您尝试按索引访问数据,该怎么办:

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

答案 2 :(得分:0)

因为您的JSON无效!
JSON不使用=它使用: !!

"key":"value"而不是"key"="value"
好像你也没有收到服务器上的JSON对象  您正在收到一系列对象!!