如何在Zapier触发器中JSON.parse数组
How do I JSON.parse an array in a Zapier Trigger?
我正在尝试JSON.解析数组"data"。我需要能够将数组作为根传递。
{
"data": [
{
"type": "name",
"id": "123"
}
]
}
响应应该像这样只包含对象。Zapier似乎不能很好地处理数组。
{
"type": "name",
"id": "123"
}
难道我不应该用一个简单的脚本来完成这项工作吗?
编辑:
从本质上讲,您将想要覆盖post_poll
方法(https://zapier.com/developer/documentation/v2/scripting/#polling)在脚本中,这样您就可以截获API的响应。之后,您只需要返回一个具有所需值的新对象。您只需要返回数据的值,而不必返回:{"data":〔{…},{…},〕}。类似于:
xyz_post_poll: function(bundle){
var response = JSON.parse(bundle.response.content);
return response.data || [];
}
我发现我需要调用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]);
}
生成的输出为:
myObject0: {"type":"name", "id":"123"}
myObject1: {"type":"name2", "id":"456"}
myObject2: {"type":"name3", "id":"789"}
是的,您可以使用简单的脚本,Javascript或Python。单击现有触发器和操作之间的+,然后添加一个操作,选择Zapier的Code作为应用程序。假设您的JSON是Trigger:的输出
{
"data": [
{
"type": "name",
"id": "123"
}
]
}
Zapier的代码将为您提供以下选项:
Zapier运行Javascript 的设置代码
如果对象data
的数组有多个元素,则Zapier将这些对象中属性type
的所有值表示为标记为数据类型的数组,并将属性id
的所有值显示为标记为Data ID。如果选择type
和id
作为要传递给Code应用程序的input
对象的属性名,那么代码得到的Javascript对象是:
input = {
type: [ "name", "name2", "name3" ],
id: [ "123", "456", "789" ]
};
然后,您的代码可以以任何方式转换数据,然后再传递到下一个Action。
Zapier代码,
如果你谈论的是解析,它使用Zapier的Code-By-Zapier JavaScript引擎,那么你要做的是:
Zapier会返回你告诉它的任何对象,所以假设你使用他们的标准名称input
,下面是你要做的:
output = {};
for (var i = 0; i < input["data"].length; i++) {
output["myObject"+str(i)] = input.data[i];
}
这应该返回一个名为output
的对象,如下所示:
"output" : {
"myObject0" : {
"type": "name",
"id": "123"
},
"myObject1" : {
"type" : "name",
"id": "124"
}
}
- JSON.parse没有'不能使用Javascript
- Javascript JSON.parse not working
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- 无法将JSON.parse与JSON_encode中的结果一起使用
- 在JSON.parse Javascript中字符串化Java对象抛出错误
- JSON.parse,已经在try/catch块中,仍然抛出语法错误
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 从JSON.parse获取元素
- JSON.parse:应为''或'}'在对象的属性值之后
- AJAX语法错误:JSON.parse:意外字符
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用JSON.parse时出现无效字符javascript错误
- 动态地将过滤器应用于 JSON.parse()
- 为什么 JSON.parse 给出无效的字符
- 想要将 JSON 字符串传递给 javascript 变量 [ JSON.parse(),eval()] 对我不起作用,
- 使用 JSON.parse 将字符串(变量)转换为对象,错误意外标记
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- AngularJS json.parse 在 json 数据的第 1 行第 1 列处意外的数据结尾
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符