javascript - 使用 jQuery 访问更复杂的 JSON

标签 javascript jquery json getjson

我正在尝试从我创建的 JSON 文件访问此数据:

{
  "game":"one",
  "schedule":[
    {
      "day":"mon",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"tue",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ],
  "game":"two",
  "schedule":[
    {
      "day":"mon",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"wed",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ],
  "game":"three",
  "schedule":[
    {
      "day":"fri",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"thu",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ]
}

这就是我尝试访问它的方式:

  $.getJSON(json_location, function(data) {
    $.each(data.schedule, function() {
      console.log(this.day + " " + this.start + " " + this.end);
    });
  });

但是,这仅返回第三场比赛中的值 - 因此:周五 00:00:00 05:30:00,周四 00:00:00 05:30:00。理想情况下,我希望能够迭代第一场比赛,然后是第二场,然后是第三场。然而,无论我如何尝试调整我的代码,我都无法允许 $.getJSON 访问数据。

我还知道这种格式对于与 javascript 一起使用是有效的,但根据 RFC 4627(JSON 规范)无效 - 因此,任何有关如何改进 JSON 布局的建议将不胜感激。

最佳答案

你是对的,这个 JSON 是错误的,因为相同的按键游戏和时间表有多个值

尝试这样的事情(最简单的改变)

{
  "one":[
    {
      "day":"mon",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"tue",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ],
  "two":[
    {
      "day":"mon",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"wed",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ],
  "three":[
    {
      "day":"fri",
      "start":"00:00:00",
      "end":"05:30:00"
    },
    {
      "day":"thu",
      "start":"00:00:00",
      "end":"05:30:00"
    }
  ]
}

然后像这样迭代

for ( var gameId in data )
{
   var scheduleArray = data[ gameId ];
//iterate this array
}

关于javascript - 使用 jQuery 访问更复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086727/

相关文章:

javascript - 拖动时更改元素类

javascript - 带点击控件的嵌套水平 slider

c# - 在 C# JSON.NET 中将字符串或对象解析为对象

java - Java 和 Javascript Ed25519 实现之间的互操作性

javascript - 将回调/函数从 native 发送到 javascript

javascript - 使用 jQuery 和 Bootstrap 而不是使用基本的 HTML 创建数据表

json - 向 graphql api 发送 http 请求时出现 "Problems parsing JSON"

javascript - 将 JPlayer 的播放列表与播放器分开以启用移动设备滚动

javascript - Three.js — 如何在加载器之外选择网格?

c# - 我将如何返回具有重复键的特定 json 值