如何在 Jquery 中迭代包含多个对象的 json 字符串



我想知道如何通过jquery访问这个json字符串中的每个对象。

返回的字符串如下所示:

{"Appointments":["/Date(1507238100000)/"],"Sessions":[]}

我需要访问约会对象和会话对象,我似乎无法弄清楚。

我尝试通过索引访问约会对象,例如:

$.each(data, function (index, element) {
                        $.each(data, function (index, element) {
                            //alert(JSON.stringify(element, null, 4));
                            alert(element.Appointments[index]);
                        });
                        //value = new Date(parseInt(element.Appointments.substr(6)));
                        //var rowContent = "<tr><td>" + value + "</td></tr>";
                        //$('#appointmentsTable tbody').append(rowContent);
                    });

这行不通,但是,想法?

当您按

$.each 遍历数组时,您不必通过 element.Appointments[index] 访问元素。

例如

var data = {"Appointments":["/Date(1507238100000)/"],"Sessions":[]};

要循环data.Appointments中的对象,您只需这样做

$.each(data.Appointments, function(index, element){
    console.log(element);
});

要遍历data.Sessions中的对象,您只需这样做

$.each(data.Sessions, function(index, element){
    console.log(element);
});

有关$.each的更多示例,请参阅此处的 JQuery API 文档。

你实际上根本不需要jquery。

你可以使用普通的javascript。如果你的项目使用 ES6,你可以把它写成:

// extract appointments and sessions from data
let { Appointments, Sessions } = data
// iterate over appointments
Appointments.forEach((appointment, index) => { console.log(appointment) })
// iterate over sessions
Sessions.forEach((session, index) => { console.log(session) })

基本上,在迭代回调中你真的不需要index - 你可以直接访问你正在迭代的元素。这同样适用于你的jquery函数。

如果你更喜欢使用jQuery,你的代码可以重写为:

$.each(data.Appointments, (index, elem) => alert(elem))

最新更新