Jquery从JSON获取数据(未定义)

Jquery get data from JSON (undefined)

本文关键字:未定义 数据 获取 JSON Jquery      更新时间:2023-09-26

当我试图从json数据中获取值时,我得到了未定义的

$.get( baseURL + 'vacation/show/' + name_surname, function( data ) {
    alert(data); // return [{"id":"1","title":"Testas","start":"2015-03-04","end":"2015-03-04"}]
    alert(data.start); // return undefined (should be here 2015-03-04)
});

我只需要从数据中获取起始值,如何解决此问题?

如果您的数据不是一个对象,则需要从中生成一个对象才能访问其值。我现在不确定是什么。因此,我设置了一个条件来检查类型,然后相应地发出警报。

$.get( baseURL + 'vacation/show/' + name_surname, function( data ) {
    alert(data);
    // return [{"id":"1","title":"Testas","start":"2015-03-04","end":"2015-03-04"}]
    if (typeof data === "object") {        
        alert (data[0].start);
    } else {
        alert (JSON.parse(data)[0].start);
    }
});

Ademo@fiddle沿着相同的路线。

使用此:

$.get( url, function( data ) {
    /* do stuff */
}, 'json');

或者这个:

$.getJSON( url, function( data ) {
        /* do stuff */
});

从'data'对象访问Json数据之前,需要将其解析为Json对象。

你可以实现如下:

var parsedJson=$.parseJSON(data)

在这里,您可以访问json对象,如:

  alert(parsedJson[i].start);

其中"i"是Json对象中第N个数据集的索引,它可以取0.1,..之间的任何数值,。。N

希望这有帮助!!

您可以执行以下操作:

$.ajax({
 type: 'GET',
 url: baseURL + 'vacation/show/' + name_surname,
 dataType: 'json',
 success: function(data) {
  for(var i = 0; i < data.length; i++) {
    console.log(data[i].start);
  }
 },
 error: function(e) {
  console.log(error);
 }
});

Ty对所有人来说,它现在运行良好,只是想知道,或者我在下一步做得很好,如果我从数组中检索for循环,然后再次将日期推送到数组中以获得最小日期,或者这不会是重复工作?

 $.getJSON( baseURL + 'vacation/show/' + name_surname, function( data ) {
    if(data != '') {
        var dates = [];  
        for(var i = 0; i < data.length; i++) {
            var date = new Date(data[i].start);
            dates.push(date);
        }
        var minDate = new Date(Math.min.apply(null, dates));
        var year = minDate.getFullYear();
        var month = minDate.getMonth();     
        $('#calendar').fullCalendar('gotoDate', year, month);
    }
 });