Код Zapier: преобразование строки в массив JavaScript - PullRequest
0 голосов
/ 17 октября 2019

У меня есть веб-крючок, который получает данные в строковом формате:

"{\"id\":\"2119813016789714851\",\"auth0_id\":\"auth0|5bbef2b54dac115c7a86684b\",\"title\":null,\"first_name\":\"Gary\",\"last_name\":\"Richard\",\"date_of_birth\":\"1994-04-10T00:00:00.000Z\",\"phone\":\"+44123456789\",\"company_id\":\"2119813365948745637\",\"status\":\"NEEDS_REVIEW\",\"email\":\"demo-1@lendflo.com\",\"agree_lendflo\":true,\"agree_authorized\":true,\"delete_director_id\":null,\"mail_change_code\":null,\"postcode\":\"ng72du\",\"address\":\"10 Faraday Road, Nottingham, Nottinghamshire\",\"country\":\"United Kingdom\",\"name\":\"fdsqfdsqfdsq\",\"company_house_no\":\"485245874\",\"main_contact_first_name\":\"Gary\",\"main_contact_last_name\":\"Richard\",\"registered_address\":\"fdsqfdsqfdsq\",\"trading_address\":null,\"website\":null,\"last_year_revenue\":\"123456\",\"registered_address_postcode\":\" LE1 6RP\",\"trading_address_postcode\":null,\"vat_number\":null,\"employee_count\":0,\"primary_user\":\"2119813016789714851\",\"company_status\":\"SIGNUP_INCOMPLETE\",\"companyIndustries\":[{\"sic\":\"62090\",\"label\":\"Other information technology service activities\"},{\"sic\":\"64992\",\"label\":\"Factoring\"}],\"stage\":\"dev\"}"

Мне нужно преобразовать эту строку в JSON и поместить ее в массив, чтобы она могла быть готова при последующих действиях zap.

Я пытаюсь сделать с модулем кода в javascript с этим кодом

output = []
var data = JSON.parse(input.data)
output.push(data)

Но я получаю ошибку:

We had trouble sending your test through.
You must return a single object or array of objects.

ОБНОВЛЕНИЕ Вот экран печати фактического редактора. Я действительно запутался в том, что здесь может пойти не так: enter image description here

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Дэвид здесь, из команды Zapier Platform.

Очень странно! Я сделал быструю выборочную проверку и мои работы работают, как и ожидалось:

Я отправил этот webhook с помощью следующей команды:

curl https://hooks.zapier.com/hooks/catch/USER_ID/HOOK_ID/ -XPOST -d '{"very": "cool"}'

Я заметил, что в вашем вводе ваш json, кажется, заключен в другой набор строк? Я дважды проверил, что мой inputData.webhook действительно был строкой. Может быть, проверить это на вашем конце? Вы также можете немного упростить код:

return {
  inputType: typeof inputData.webhook, // should be "string"
  outputType: typeof JSON.parse(inputData.webhook), // should be "object"
  output: JSON.parse(inputData.webhook) // should be your actual data, split out
}

Это должно помочь вам в правильном направлении.

1 голос
/ 17 октября 2019

это работает хорошо, я думаю, что ваш input.data не правильный вход

const data = "{\"id\":\"2119813016789714851\",\"auth0_id\":\"auth0|5bbef2b54dac115c7a86684b\",\"title\":null,\"first_name\":\"Gary\",\"last_name\":\"Richard\",\"date_of_birth\":\"1994-04-10T00:00:00.000Z\",\"phone\":\"+44123456789\",\"company_id\":\"2119813365948745637\",\"status\":\"NEEDS_REVIEW\",\"email\":\"demo-1@lendflo.com\",\"agree_lendflo\":true,\"agree_authorized\":true,\"delete_director_id\":null,\"mail_change_code\":null,\"postcode\":\"ng72du\",\"address\":\"10 Faraday Road, Nottingham, Nottinghamshire\",\"country\":\"United Kingdom\",\"name\":\"fdsqfdsqfdsq\",\"company_house_no\":\"485245874\",\"main_contact_first_name\":\"Gary\",\"main_contact_last_name\":\"Richard\",\"registered_address\":\"fdsqfdsqfdsq\",\"trading_address\":null,\"website\":null,\"last_year_revenue\":\"123456\",\"registered_address_postcode\":\" LE1 6RP\",\"trading_address_postcode\":null,\"vat_number\":null,\"employee_count\":0,\"primary_user\":\"2119813016789714851\",\"company_status\":\"SIGNUP_INCOMPLETE\",\"companyIndustries\":[{\"sic\":\"62090\",\"label\":\"Other information technology service activities\"},{\"sic\":\"64992\",\"label\":\"Factoring\"}],\"stage\":\"dev\"}"

const output = []
const json = JSON.parse(data)

output.push(json)

console.log(output)
...