Как мой массив JSON нужно отформатировать для итерации этого $ .each? - PullRequest
0 голосов
/ 01 февраля 2019

Мне нужно перебрать данные, которые получают через 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 голосов
/ 01 февраля 2019

как вы сказали, я думаю, что вы response.bookings массив, подобный этому $arr = [1,2,3,4,5];.

, если вы выполните итерацию, как показано ниже

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

, вы получите вывод 0,1 1,22,3 ...

но я не получил booking.seat_id означает ..?Можете ли вы дать нам формат массива бронирования?

0 голосов
/ 03 февраля 2019

Я наконец нашел решение.Спасибо всем, кто помог.Это довольно просто и глупо.Мне только нужно было изменить ответ JSON с:

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

на

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

В основном избавиться от []

0 голосов
/ 01 февраля 2019

У вас есть варианты здесь.Значение ключа {"ключ": значение} или {"имя": Джон} является одним из способов.Вы можете сделать больше информации, например, "employee": {"name": "John", "age": 30, "city": "New York"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...