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

时间:2017-10-12 01:21:05

标签: javascript jquery json

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

返回的字符串如下:

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

我需要访问Appointments对象以及Sessions对象,我似乎无法弄明白。

我尝试通过以下索引访问Appointments对象:

$.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);
                    });

但这不起作用,想法?

2 个答案:

答案 0 :(得分:2)

当您通过element.Appointments[index]循环播放数组时,您不必通过$.each访问元素。

例如

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 Documentation here

答案 1 :(得分:2)

你根本不需要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))