我想知道如何通过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);
});
但这不起作用,想法?
答案 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))