如何我JSON阵列需要通过这个$。每次被格式化迭代?

时间:2019-02-01 18:07:41

标签: php json ajax

我需要使用以下代码遍历通过JSON获取的数据:

setInterval(function() {

        console.log("running");
        $.ajax({
            type     : 'get',
            url      : 'data.txt',
            dataType : 'json',
            success  : function(response) {

                console.log(response.bookings) // returns undefined

                $.each(response.bookings, function(index, booking) {
                    sc.status(booking.seat_id, 'unavailable');

                    console.log(booking.seat_id); // returns nothing

                });
            }
        });
    }, 3000); //every 3 seconds

数据当前的格式如下:

[{
  "bookings": [
    {
      "seat_id": "1_4"
    },
    {
      "seat_id": "4_2"
    }]
}]

但这似乎不起作用。我需要使用什么正确的格式?我尝试了很多选择,但无法正常工作。

更新:

我现在在控制台中看到的错误是:

jquery-1.11.0.min.js:2 Uncaught TypeError: Cannot read property 'length' of undefined
    at Function.each (jquery-1.11.0.min.js:2)
    at Object.success ((index):145)
    at j (jquery-1.11.0.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-1.11.0.min.js:2)
    at x (jquery-1.11.0.min.js:4)
    at XMLHttpRequest.b (jquery-1.11.0.min.js:4)

第145行是:

$.each(response.bookings, function(index, booking) {

3 个答案:

答案 0 :(得分:0)

您在这里有选择。键值{“ key”:value}或{“ name”:john}是一种方法。您可以执行更多信息,例如“员工”:{“ name”:“ John”,“ age”:30,“ city”:“ New York”}

答案 1 :(得分:0)

正如您所说,我认为您是response.bookings这样的$arr = [1,2,3,4,5];数组。

如果您像下面那样进行迭代

$.each($arr,function(i,k){
  console.log(i,k)
}) 

您将获得输出0,1 1,2 2,3 ...

但是我没有得到预订。seat_id的意思是..?您能给我们预订数组的格式吗?

答案 2 :(得分:0)

我终于找到了解决方案。谢谢所有帮助的人。这是非常简单和愚蠢的。我只需要从以下位置更改JSON响应:

[{
  "bookings": [
    {
      "seat_id": "1_4"
    },
    {
      "seat_id": "4_2"
    }]
}]

{
  "bookings": [
    {
      "seat_id": "1_4"
    },
    {
      "seat_id": "4_2"
    }]
}

基本上摆脱[]