You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何从JSON文件取值并赋值给数组内的变量

问题原因
  • 首先$.getJSON是异步网络请求,你当前把events数组赋值的代码写在请求回调函数外部,代码执行顺序是先执行外部的events赋值,再等请求成功后才会执行回调里的逻辑,此时gettitle还是空字符串,自然拿不到值。
  • 其次你在遍历返回数据的时候只给同一个gettitle变量重复赋值,最后只能保留最后一条数据的title,没法拿到所有记录的标题。
修复后的代码
var events = [];
// 注意如果你的date、nextDay是每个事件独有的参数,建议直接从接口返回的v对象里读取对应字段
$.getJSON(fileLocation, function (data) {
  // 请求成功拿到数据后再构建events数组
  $.each(data.data, function(i, v) {
    // 每遍历一条记录就往events里新增一个日历事件对象
    events.push({
      id: i + 1, // 也可以直接使用接口返回的记录唯一id
      url: '',
      title: v.title,
      start: date,
      end: nextDay,
      allDay: false,
      extendedProps: {
        calendar: 'school'
      }
    })
  });
  // 日历组件的初始化、事件列表更新操作必须放在这里执行,确保数据已经加载完成
  // 比如你用的FullCalendar的话,就把 calendar.render() 或者 calendar.addEventSource(events) 写在这里
});
注意事项
  • 如果每条日历事件的起止时间、跳转链接等参数是存在JSON里的,直接读取v.对应字段即可,不要用全局的固定值,避免所有事件参数都一致。
  • 所有依赖events数组的逻辑都要放在异步请求的回调内部,或者在请求完成后再触发执行,不能写在请求外部。

内容的提问来源于stack exchange,提问作者Kunal Parekh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:57:03