$.getJSON 中的函数参数如何工作?

Posted

技术标签:

【中文标题】$.getJSON 中的函数参数如何工作?【英文标题】:How do function arguments within $.getJSON work? 【发布时间】:2014-04-27 02:50:15 【问题描述】:

是否有官方文档解释函数参数的工作原理?

$.getJSON("files/golfClubs.json", function (data) 
    $.each(data, function (index, value) 
        $("#filtermenu").append("<option value='" + data[0].GolfCourses[index].GolfCourseID + "'>" + data[0].GolfCourses[index].GolfCourseName + "    </option>");
    );
);

比如说:

$.getJSON("files/golfClubs.json", function (data) 
    alert(data);
//Returns undefined. Unless .JSON.stringify-ed().
);

问题 1:我想知道当您引用相同的参数变量时,参数基本上是如何传递数据的。尤其是嵌套的 JSON。当您传递 2 个参数而不是 1 个参数时会发生什么?

问题 2:结合函数中的参数,使用下面的 JSON,您如何访问 GolfCourses.GolfCourseBookings.DayBookings?

[
    
        "GolfClubID": "TROPICANA",
        "GolfClubName": "Tropicana Golf and Country Club",
        "GolfCourses": [
            
                "GolfCourseID": "1",
                "GolfCourseName": "West Course - 1st 9",
                "GolfCourseBookings": [
                    
                        "DayNumber": 1,
                        "DayDate": "19/03/2014",
                        "DayBookings": [
                            
                                "TimeSlotID": "0",
                                "Time" : "07:00",
                                "Class": "Closed"
                            ,
                            
                                "TimeSlotID": "1",
                                "Time" : "07:10",
                                "Class": "Closed"
                            ,
                            
                                "TimeSlotID": "2",
                                "Time" : "07:20",
                                "Class": "Closed"
                            ,

【问题讨论】:

你的数据是嵌套数组对象,所以你可以访问数据,比如 alert(data[0]) value[0].GolfCourses[index].GolfCourseID 不是data[0]....... 【参考方案1】:

请阅读http://api.jquery.com/jquery.getjson/

你有一个对象(数据)数组,你可以告诉这个,因为在 javascript 中:

[] = 数组, = 对象

例如:

var GolfCourses = []; // Array
var GolfCourses = new Array(); // Array

var GolfCourse = ; // Object
var GolfCourse = new Object(); // Object

所以回答你的问题:

第一季度。 $.getJSON 重新调整“数据”中的所有内容。因此,如果您想从服务器发送 2 个参数,例如name = "John" 和 last_name = "Travolta" 你用 javascript 对象表示法 (JSON) 发送它:

data =  "name": "John", "last_name": "Travolta" ;

在客户端你可以这样访问它:

data.name; // John
data.last_name; // Travolta

如果您希望您的服务器发送各种对象:

data = [
     "name": "John",
      "last_name": "Travolta" ,
     "name": "James",
      "last_name": "Dean" 
];

然后你访问:

data[1].last_name; // Dean

第二季度。基本上:

data[0].GolfCourses[0].GolfCouseBookings[0].DayBookings[0].Class; // Closed

谷歌“JSON 或 Javascript 对象表示法”获取信息。

【讨论】:

以上是关于$.getJSON 中的函数参数如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()

详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()

jQuery中$.getJSON

使用 Jquery $getJSON 如何在 Url 参数之后为 [data] 参数动态创建数据?

Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结