#arrays #json #zapier
#массивы #json #zapier
Вопрос:
Я пытаюсь проанализировать конкретный вложенный объект (Sign_UP_Appointment) из результатов веб-поиска, используя код Zapier
Результаты Webhook
{
"entity":{
"OPPORTUNITY_ID":24096201,
"OPPORTUNITY_NAME":"Scott Williams ",
"OPPORTUNITY_STATE":"OPEN",
"RESPONSIBLE_USER_ID":1737942,
"OWNER_USER_ID":1737942,
"DATE_CREATED_UTC":"2019-04-15T17:02:11.567",
"DATE_UPDATED_UTC":"2019-04-15T17:02:40.437",
"VISIBLE_TO":"OWNER",
"CUSTOMFIELDS":[
{
"CUSTOM_FIELD_ID":"Administration_Type__c",
"FIELD_VALUE":"Summary Administration"
},
{
"CUSTOM_FIELD_ID":"Initial_Appointment__c",
"FIELD_VALUE":"2019-04-11T20:45:00"
},
{
"CUSTOM_FIELD_ID":"Sign_Up_Appointment__c",
"FIELD_VALUE":"2019-04-18T21:00:00"
}
],
"TAGS":[],
"LINKS":[
{
"LINK_ID":205236388,
"CONTACT_ID":287320999,
"OPPORTUNITY_ID":24096201
}
]
}
}
Я хочу вернуть только пользовательское поле (Sign_Up_Appointment__c). Я попробовал приведенный ниже код, но проблема в том, что при последующих результатах порядок меняется. Есть ли способ отфильтровать только объект Sign_Up_Appointment__c?
const result = JSON.parse(inputData.body);
return {result: result, SignUpDate: result.entity.CUSTOMFIELDS[3]};
Ответ №1:
Дэвид здесь, из команды платформы Zapier.
Да! Вы можете использовать Array.find:
const result = JSON.parse(inputData.body);
return {
result,
SignUpDate: result.entity.CUSTOMFIELDS.find(
f => f.CUSTOM_FIELD_ID === "Sign_Up_Appointment__c"
)
};
SignUpDate
будет undefined
, если в массиве нет поля с этим field_id
(я не уверен, насколько это вероятно)