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