Возврат содержимого первого элемента по индексу - PullRequest
1 голос
/ 22 марта 2019

Я создаю пользовательскую интеграцию в Zapier и столкнулся с проблемой, при которой вызываемый мной API-вызов (для Mavenlink) возвращает объект с произвольным ключом (235896815 в приведенном ниже примере). Однако Zapier может использовать массивы (не объекты) только при возврате результатов. Мне нужен способ получить массив в возвращаемом объекте, не зная, что это за ключ. У меня была одна потенциальная идея - всегда возвращать результаты первого объекта по индексу. Это был бы лучший способ решить это? Если так, как бы я поступил так? Открыты и для других идей.

Пример вывода:

{
  "235896915": {
    "can_edit": true,
    "subject_type": "story",
    "account_id": 4150797,
    "subject_id": 390078195,
    "updated_at": "2019-03-21T14:26:16-07:00",
    "value": [
      1406325
    ],
    "display_value": "Nicole Patel",
    "setter_id": "10149395",
    "custom_field_id": "181017",
    "created_at": "2019-03-21T14:26:16-07:00",
    "custom_field_name": "Active Assignee",
    "type": "single",
    "id": "235896915"
  }
}

и вот звонок, который я делаю:

const options = {
  url: `https://api.mavenlink.com/api/v1/custom_field_values.json?subject_type=story&with_subject_id=${bundle.inputData.subject_id}`,
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${bundle.authData.access_token}`,
    'Accept': 'application/json'
  },
  params: {
    'subject_id': bundle.inputData.with_subject_id,
    'id': bundle.inputData.id,
    'display_value': 'Active Assignee'
  }
}

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

    // You can do any parsing you need for results here before returning them

    return results.custom_field_values; //return object in an array
  });
```

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете преобразовать ваш объект в массив с помощью Object.values.

var arr = Object.values(results);
...