Результаты Zapier из `triggers.new_booking.operation.perform` должны быть массивом объектов - PullRequest
2 голосов
/ 13 июня 2019

Я создаю интеграцию Zapier для приложения. Приложение возвращает JSON-ответ, подобный этому ...

{
  result: "Success",
  message: "Showing a total of 1 bookings",
  bookings: {
    42: {
      event: {
        event_name: "Chris's Event",
        event_date_uk: "Saturday 22nd Jun 2019"
      }
    }
  }
}

В моем парсере zapier у меня есть следующее ....

const options = {
  url: bundle.authData.url+`/api/v1/bookings`,
  method: 'GET',
  headers: {
    'Accept': 'application/json'
  },
  params: {
    'key': bundle.authData.api_key,
    'secret': bundle.authData.client_secret,
    'booking_id': 42,
    'scope': 'full'
  },
}

return z.request(options)
  .then((response) => {
    response.throwForStatus();
    const results = z.JSON.parse(response.content);

    return results["bookings"];

  });

Однако, когда я тестирую, я получаю следующее ....

Результаты из triggers.new_booking.operation.perform должны быть массивом объектов. Мы получили {"42": {"event": {"event_name": "Chris's Event", "event_date_uk": "Saturday 22nd Jun 2019"}}}. enter image description here

Я думал, JSON.parse вернул объект? И из того, что я вижу, я возвратил массив объектов. Есть идеи, что я делаю не так?

1 Ответ

1 голос
/ 13 июня 2019

Содержит массив объектов (бронирований):

{
  "result": "Success",
  "message": "Showing a total of 1 bookings",
  "bookings": [
    {
      "42": {
        "event": {
          "event_name": "Chris's Event",
          "event_date_uk": "Saturday 22nd Jun 2019"
        }
      }
    }
  ]
}

Редактировать: чтобы получить доступ к свойству события в вашем JSON, это bookings.42.event, где в JSON выше это bookings[0].42.event.

...