如何将Ajax返回的对象数组转换为整数类型的数组的数组
解决方案
你的核心问题是没有正确解析Ajax返回的JSON数据,且未按需求提取对象中的数值转换为二维整数数组,以下是修正后的实现:
关键问题分析
- Ajax返回的是JSON格式的对象数组字符串,但你直接将其当作普通字符串执行
split(","),完全不符合数据结构逻辑 - 未将对象中的数值属性提取并转换为整数类型
修正后的代码
var bookedSeats = []; $.ajax({ url: 'public/get-show_booked-table.php', type: "post", // 改用对象传递参数,避免字符串拼接的潜在错误 data: { show_id: showId, ticket_class_id: cleassId, schedule_id: schedule_id, organizer_id: org_id, booking_date: show_booking_date }, // 指定返回数据类型为JSON,jQuery会自动解析为对象数组 dataType: 'json', success: function (result) { // 遍历对象数组,提取每个对象的行列值并转为整数,组成二维数组 // 请根据实际返回的对象属性名(如seat_row、seat_column)调整键名 bookedSeats = result.map(item => [ parseInt(item.seat_row, 10), parseInt(item.seat_column, 10) ]); console.log(bookedSeats); // 此时已得到整数类型的二维数组 }, error: function (xhr, status, error) { console.error(xhr); } });
额外说明
- 如果后端未正确设置响应头
Content-Type: application/json,可以手动解析数据:
将success函数中的result替换为JSON.parse(result)即可 parseInt的第二个参数10必须添加,确保以十进制解析数值,避免意外的八进制解析问题
内容的提问来源于stack exchange,提问作者Shivendra Kr. Sahu
相关产品推荐
相关产品推荐

