Zapier捕获(原始)钩子JSON解析问题

Zapier捕获(原始)钩子JSON解析问题,json,zapier,Json,Zapier,我想使用Zapier和Webhooks在两个不同的CRM(Clevertap和Intercom)之间配置同步。通常,Clevertap会将以下JSON发送到webhook: { “targetId”:1548328164, “概况”:[ { “事件属性”:{ “MSG sms”:正确, “消息推送”:正确, “业务角色”:“员工”, “手机号码”:“123123”, “名称”:“Artem Hovtvianisa”, “头衔”:“先生”, “姓氏”:“Hovtvianisa”, “性别”:“M”

我想使用Zapier和Webhooks在两个不同的CRM(Clevertap和Intercom)之间配置同步。通常,Clevertap会将以下JSON发送到webhook:

{
“targetId”:1548328164,
“概况”:[
{
“事件属性”:{
“MSG sms”:正确,
“消息推送”:正确,
“业务角色”:“员工”,
“手机号码”:“123123”,
“名称”:“Artem Hovtvianisa”,
“头衔”:“先生”,
“姓氏”:“Hovtvianisa”,
“性别”:“M”,
“客户类型”:“业务账户持有人”,
“MSG电子邮件”:正确,
“名字”:“阿特姆”,
“最后一次见到的IP”:“111.177.74.50”,
“tz”:“GMT+0200”,
“国际客户”:“是”,
“isBusiness”:没错,
“电子邮件”:xxxyyy@gmail.com", 
“身份”:15675
}, 
“objectId”:“E32E4DE3C1E84B2D9BAB370C92CD092”,
“所有_身份”:[
"15675", 
"xxxyyy@gmail.com"
], 
“电子邮件”:xxxyyy@gmail.com", 
“身份”:“15675”
}
]
}
Zapier提供两种类型的捕获webhook:常规和原始

抓住生钩

当我使用这种类型时,JSON原始数据将被正常处理,在下一步(Zapier JS代码应用程序)中,我能够像上面的示例一样传递正确的JSON数据

但是,当我使用简单的JS代码解析JSON对象并获取profiles[0]数组值时,会出现以下错误“TypeError:无法读取未定义的属性“0”

代码步骤中的JS代码

var result = JSON.parse(JSON.stringify(inputData));
console.log(result.profiles[0]);
return result;

吊钩

如果我使用常规的Catch钩子,钩子会以某种奇怪的方式解析数据,如下所示:

JSON.parse无法识别此结构

请告知我如何以正确的方式处理Webhook Zapier步骤,以便获取配置文件[0]数组项值


提前谢谢

这里是大卫,来自Zapier平台团队。你在正确的轨道上

抓住生鱼钩是到这里的方法。你的问题是数据是以字符串的形式输入的,你在解析它之前要对它进行字符串化,这会让你回到原来的位置。更简单的版本:

JSON.stringify(“asdf”)/=>“asdf\”,在字符串中加引号
JSON.parse(“\”asdf\”)/=>“asdf”,原始字符串
“asdf”.profiles/=>未定义
未定义[0]/=>错误,无法读取未定义的属性“0”
相反,只要解析它,你就可以开始了

//您的所有变量都已在“inputData”中,因此,
//也命名为inputData,必须显式引用。
const result=JSON.parse(inputData.inputData);
返回{result:result,firstProfile:result.profiles[0]};

Hello David,很遗憾,您的建议也不起作用,请查看屏幕截图:请建议如何继续。提前谢谢@您正在调用的是
JSON.parse(inputData)
,其中
inputData
是Zapier提供的整个输入对象。您需要引用子变量(您也将其命名为
inputData
):
JSON.parse(inputData.inputData)