Javascript 如何解析Zapier触发器中的数组?

Javascript 如何解析Zapier触发器中的数组?,javascript,arrays,json,polling,zapier,Javascript,Arrays,Json,Polling,Zapier,我正在尝试JSON.parse数组“data”。我需要能够将数组作为根传递 { "data": [ { "type": "name", "id": "123" } ] } 响应应该是这样的,只包含对象。Zapier似乎不能很好地处理数组 { "type": "name", "id": "123" } 难道我不能用一个简单的脚本来完成工作吗 编辑: 本质上,您需要在脚本中重写post_poll方法(),以便截获API的响

我正在尝试JSON.parse数组“data”。我需要能够将数组作为根传递

{
  "data": [
    {
      "type": "name",
      "id": "123"
    }
  ]
}
响应应该是这样的,只包含对象。Zapier似乎不能很好地处理数组

{
      "type": "name",
      "id": "123"
}
难道我不能用一个简单的脚本来完成工作吗


编辑:

本质上,您需要在脚本中重写
post_poll
方法(),以便截获API的响应。之后,您只需要返回一个包含所需值的新对象。您只需要返回数据的值,而不是返回:{“data”:[{…},{…},]}。比如:

xyz_post_poll: function(bundle){
  var response = JSON.parse(bundle.response.content);
  return response.data || [];
}

是的,您可以使用简单的脚本、Javascript或Python。单击现有触发器和操作之间的+,然后添加一个操作,选择CodebyZapier作为应用程序。假设JSON是触发器的输出:

{
  "data": [
    {
      "type": "name",
      "id": "123"
    }
  ]
}
Zapier的代码将为您提供以下选项:

如果对象数组
data
包含多个元素,则Zapier会将这些对象中属性
type
的所有值显示为标记为data type的数组,将属性
id
的所有值显示为标记为data id的数组。如果选择
type
id
作为要传递给代码应用程序的
input
对象的属性名,则代码获得的Javascript对象如下:

input = {
 type: [ "name", "name2", "name3" ],
 id: [ "123", "456", "789" ]
};
然后,在传递到下一个操作之前,您的代码可以以任何方式转换数据


如果您正在谈论通过Zapier JavaScript引擎使用Zapier的代码进行解析,那么下面是您要做的:

output = {};

for (var i = 0; i < input["data"].length; i++) {
  output["myObject"+str(i)] = input.data[i];
}
Zapier将返回您告诉它的任何对象,因此假设您将它们的标准名称用于
输入
,您可以这样做:

output = {};

for (var i = 0; i < input["data"].length; i++) {
  output["myObject"+str(i)] = input.data[i];
}

我发现我需要调用
JSON.parse()
JSON.stringify()
,才能让它正常工作。假设我的输入作为(键,值)放入Zapier,其中键=数据,值为:

[{"type": "name", "id":"123"}, {"type": "name2", "id":"456"}, 
  {"type": "name3", "id":"789" }]
我的代码:

output = {};

var obj = JSON.parse(input.data);

for (var i = 0; i < obj.length; i++) {
   output["myObject"+i] = JSON.stringify(obj[i]);
}

我对Zapier不太熟悉,您是否需要一个以json开头并返回该对象的函数?虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-编辑原创文章就是为了做到这一点。谢谢你的建设性建议。
myObject0: {"type":"name", "id":"123"}
myObject1: {"type":"name2", "id":"456"}
myObject2: {"type":"name3", "id":"789"}